gpt4 book ai didi

父函数可以判断子项是否已写入标准输入吗?

转载 作者:太空宇宙 更新时间:2023-11-04 04:33:14 25 4
gpt4 key购买 nike

例如,假设父函数有:

scanf("%s", str);
if (strcmp(str,"test")==0)
printf("Success!\n);

这是子函数:

signal(SIGUSR1, speak);
sleep(5);
kill(0, SIGUSR1)

sleep 函数是:

void speak()
{
puts("test");
}

为什么父函数永远不会成功?是因为 puts 函数不是从键盘写的吗?有什么办法可以解决这个问题吗?

最佳答案

How come the parent function never reaches success? Is it because puts function doesn't write from the keyboard? Is there a way I can work around this?

我假设您允许子进程从父进程继承其标准流,以便它们由父进程和子进程共享。您似乎有一个非常奇怪的想法,即写入 stdout 的数据应该反馈给 stdin。虽然可以通过创建管道并重新分配标准流来安排,但这绝不是正常的,更不用说自动了。

如果您想通过流 I/O 在两个进程之间执行 IPC,那么在它们之间创建管道是为数不多的方法之一,而且可能是最简单的方法。尤其是当进程作为父/子进程相关时。

关于父函数可以判断子项是否已写入标准输入吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33762071/

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