【发布时间】:2013-11-09 17:36:12
【问题描述】:
例如,我可以将输入文件的内容写入和输出文件:
char buffer[1024]; // character buffer
char userInput[1024]; // for user input
char *p;
char *q;
int n;
int input_file1; // file descriptor for file 1
int input_file2; // file descriptor for file 2
int output_file; // file descriptor for output_file
while((n = read(input_file1, buffer, sizeof(buffer))) > 0)
{
progress("entered first while loop");
if((write(output_file, buffer, n)) < 0)
{
progress("couldn't write to output within while loop 1");
perror(argv[3]);
close(input_file1);
close(input_file2);
close(output_file);
exit(1);
}
}
我还有一些用户输入:
printf("\nEnter text then hit enter: ");
q = fgets(userInput, sizeof(userInput), stdin);
我想使用 write() 将用户输入附加到同一个输出文件中;
我该怎么做?
-----更新----适用于
if(strcmp(argv[1], "-") == 0) // use standard-in for input file 1
{
progress("file 1 detected as \"-\": using std input");
p = fgets(userInput, sizeof(userInput), stdin);
if (write(output_file, userInput, sizeof(p)) < 0) {
progress("write from stdin to output file failed");
perror(argv[4]);
exit(1);
}
progress("wrote from stdin to output file");
}
【问题讨论】:
标签: c string low-level low-level-io low-level-code