我正在写两个c文件,一个是写(通过stdout),另一个是读(通过stdin)。
但是读取的代码总是挂着read(),我试过fread函数但没用。
有人可以提供建议吗?
写例:
int main() {
char *a_string="Hello";
write(fileno(stdout), a_string, strlen(a_string)+1);
return 0;
}
阅读示例:
int main() {
char buffer[100];
read(fileno(stdin), buffer, 100-1);
printf("buffer=%s\n", buffer);
return 0;
}
答案 0 :(得分:0)
你需要输入EOF来停止,在Linux中,它是Ctrl + D.
答案 1 :(得分:0)
读取代码总是挂起read(),我试过fread函数但没用。
这是因为read
和fread
与fgets
和类似函数不同,当用户输入换行符时不会退出读取(按 Enter )。它等待直到读取EOF或者直到读取了指定的字节为止。
要将EOF发送到read
,您必须按 Ctrl + D 。