gpt4 book ai didi

C System() 控制标准输出

转载 作者:太空宇宙 更新时间:2023-11-04 04:28:00 27 4
gpt4 key购买 nike

我正在用 C 语言编写一个程序,在这个模型中:

//Block 1: Does a lot of operations, including debug messages

strcpy(call, "xdg-open ");
strcat(call, url);

system(call);

//Block 2: Does a lot of operations, including debug messages

调用 system() 后,看起来这个函数控制了 stdout 并且不再打印 Block 2 调试消息,只打印 Block 1 消息。

有谁知道发生了什么事以及可能的解决方案是什么?

最佳答案

当您使用 int system(const char *command) 函数执行其他应用程序时,您的应用程序将等待直到被调用的应用程序退出。这就是为什么您看不到 Block 2 的任何输出的原因。

你可以通过在 end off 命令中添加 & 来解决这个问题,这将导致整个应用程序将作为不同的进程运行。所以你可以试试这个:

strcpy(call, "xdg-open ");
strcat(call, url);
strcat(call, " &");

system(call);

您可能还需要刷新 stdout 缓冲区,因此请在 Block 2 之后调用 fflush(stdout)

关于C System() 控制标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39591798/

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