gpt4 book ai didi

c - 如何捕获c中execvp()函数的输出?

转载 作者:行者123 更新时间:2023-11-30 17:08:53 26 4
gpt4 key购买 nike

我在 C 中使用 execvp() 函数。
我的代码:

pid_t pid = fork();
if(pid < 0)
printf("Fork faild\n");
else if(pid == 0)
{
// chirld process
}
else
{
// parent process
execvp(args[0],args)
}

其中args变量是“ls”。我的屏幕显示特定文件,例如

a.txt , b.c , c.pdf

...等等。那么..这个函数可以返回一个变量吗?如:

char str[MAX] = " a.txt b.c c.pdf ";

抱歉我的英语不好。

更新

我需要使用 send()recv()execvp() 函数的结果从服务器发送到客户端。

最佳答案

如果足以捕获 stdout,popen 是一个很好的 git。它将创建一个管道并在后台 fork 该进程,因此不需要手动执行此操作。

popen 用法的简单示例:

#include <stdio.h>

int main(void)
{
FILE* p = popen("ls -la", "r");
if (!p) return 1;

char buff[1024];
while (fgets(buff, sizeof(buff), p)) {
printf("%s", buff);
}
pclose(p);

return 0;
}

关于c - 如何捕获c中execvp()函数的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33482205/

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