Linux命令行重定向与2个C文件
-
23-12-2019 - |
题
我只是在Linux中的管道I / O功能新建。 2 C文件,第一个发送数据:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
int main(int argc, char* argv[])
{
int i = 0;
for(;;)
{
printf("\nSent number: %d",i);
i++;
sleep(1);
fflush(stdout);
}
return 0;
}
.
第二个文件接收打印号码并显示它:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
int main(int argc, char* argv[])
{
int x;
for(;;)
{
scanf("%d",&x);
printf("Received number: %d\n",x);
sleep(1);
fflush(stdout);
}
return 0;
}
.
最后我尝试将数据从第一个文件重定向到第二个文件:
./send_test.out | ./rcv_test.out
.
终端重复打印:“收到的号码:0”,我做错了什么? 此外,我如何为两个程序同时运行的终端窗口,同时将输出从发件人引导到接收器?
提前感谢
解决方案
您不会以“发送”Receiver可以了解的格式。
尝试删除除了来自发件人的格式字符串的%d
之外的所有文本。
此外,您应该在依赖它之前检查scanf()
的返回值。
不隶属于 StackOverflow