我在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”;
抱歉我的英语不好。
更新
我需要使用execvp()
,send()
将recv()
函数的结果从服务器发送到客户端。
答案 0 :(得分:0)
如果它足以捕获标准输出,popen
是一个很好的git。它将创建一个管道,并将在引擎盖下分叉,因此不需要手动完成。
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;
}