在父子进程之间创建管道

时间:2016-06-27 15:53:13

标签: c process pipe fork

我试图在父子进程之间创建一个管道。 在这个管道中,子进程将写入数据,父进程将读取并打印它。 我不知道为什么,但如果我输入一个大字符串数据出错了,对于+ - 7字的字符串它仍然可以。 我想这是关于缓冲区的大小,但无法修复它。

{{1}}

1 个答案:

答案 0 :(得分:1)

sizeof(argv[1])

这不符合你的想法。

sizeof在编译时 1 进行评估,在这种情况下将返回8(假设您使用的是64位计算机),因为argv[1]是指针。

因为你想要字符串的长度(只能在运行时知道),所以你应该使用:

strlen(argv[1])

1 - 有时会在运行时评估sizeof。这不是其中之一。