我试图在父子进程之间创建一个管道。 在这个管道中,子进程将写入数据,父进程将读取并打印它。 我不知道为什么,但如果我输入一个大字符串数据出错了,对于+ - 7字的字符串它仍然可以。 我想这是关于缓冲区的大小,但无法修复它。
{{1}}
答案 0 :(得分:1)
sizeof(argv[1])
这不符合你的想法。
sizeof
在编译时 1 进行评估,在这种情况下将返回8(假设您使用的是64位计算机),因为argv[1]
是指针。
因为你想要字符串的长度(只能在运行时知道),所以你应该使用:
strlen(argv[1])
1 - 有时会在运行时评估sizeof
。这不是其中之一。