gpt4 book ai didi

c - fork exec 等待命令行输入值的循环

转载 作者:太空宇宙 更新时间:2023-11-04 12:36:18 26 4
gpt4 key购买 nike

我正在尝试在另一个文件中执行 一个文件最多 5 次并保存结果。我在 for 循环中使用 fork-exec-wait,它是这样的:

    for(i = 0; i< Number_of_Processes; i++){
pid = fork();
if(pid == 0)
{
execl(...);
exit(EXIT_Failure);
}
else if(pid > 0)
{
wait(&status);
result = WEXITSTATUS;
}
}

问题是,它第一次正确执行第二个文件,然后重新打印第一个结果 5 次(或用户输入的任何内容)我尝试了很多其他方法,比如在 pid == 0 时中断,但没有用。我找不到如何在循环中使用 exec 的适当示例,所以我被困了几个小时,尝试上下移动函数但什么也得不到。无论我做什么,我都看不到内部文件的第二次执行。

最佳答案

显然这是一个时间问题,当我在子进程中的 execl 之前添加一个 sleep(1) 时,它修复了所有问题并一个一个地执行了所需的进程并打印真实结果

    for(i = 0; i< Number_of_Processes; i++){
pid = fork();
if(pid == 0)
{
sleep(1);
execl(...);
exit(EXIT_Failure);
}
else if(pid > 0)
{
wait(&status);
result = WEXITSTATUS;
}
}

关于c - fork exec 等待命令行输入值的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41653505/

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