我需要模拟 Linux 命令“ cal -3
”,它并排显示 3 个月的日历。我现在需要的是让我的实现,使用管道,工作。有人告诉我我不能使用,fork()
而是应该使用dup2()
,write()
和调用三次。现在我的程序没有并排显示日历。read()
close()
system("myCustomCommand")
我正在尝试使用管道并遇到问题。这是我正在尝试的:
int pfd[2];
int p; //for pipe
int d; //for dup2
const int BSIZE = 256;
char buf[BSIZE];
p = pipe(pfd);
if (p == -1) { perror("pipe"); exit(EXIT_FAILURE); }
if (p == 0)
{
d = dup2(pfd[1], 0);
close(pfd[1]);
nbytes = read (pfd[1], buf , BSIZE);
close(pfd[0]);
exit(EXIT_SUCCESS);
}
else
{
close(pfd[0]);
write(pfd[1], "test\n", BSIZE);
close(pfd[1]);
exit(EXIT_SUCCESS);
}
不幸的是,这段代码没有显示任何内容。你能帮我解决这个问题吗?