gpt4 book ai didi

c - 如何使用时间从子级到父级的所有文件写入?

转载 作者:行者123 更新时间:2023-11-30 20:27:19 27 4
gpt4 key购买 nike

我在c中编写了以下代码,父级使用管道读取从子级获得的内容,并将其写入新文件,子级应该在读取的每50个字符之间等待,但问题是父级只写入文件中的一行,我知道缺少某些内容但无法识别它?

  if(fork())
{
//Parent
read(fd[0],str,sizeof(str));
fprintf(fpnew,str,"w+");
}
else
{
//Child 1
while(fgets(str,n,fp)!=NULL)
{
write(fd[1],str,sizeof(str));
sleep(1+rand()%10);
}
}

最佳答案

您需要在父级中放置一个循环来读取子级输出,直到完成。 fprintf 在这里使用是错误的。如果您想坚持使用 std C 库,那么您可能需要这里的 fwrite 。但我倾向于保持一致,而不是将 stdlib 函数与较低级别的读取混合和匹配。只是少了一件需要考虑的事情。你想要更多这样的东西。 (此外,请阅读您正在使用的函数的参数并检查返回代码。)

  int fpnew = open("whatever", O_WRONLY);
if (pfnew < 0)
error....

int bytesread;

while ((bytesread = read(fd[0], str, sizeof(str))) != 0)
write(fpnew, str, bytesread);

close(pfnew);

关于c - 如何使用时间从子级到父级的所有文件写入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20785978/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com