要在C语言中获取Linux命令的返回值,可以使用`popen`函数和`pclose`函数。 1. 引入头文件: “`c #include “` 2. 使用`popen`函数执行Linux命令: “`c FILE *fp; char buffer[1024]; fp = popen(“command”, “r”); if (fp == NULL) { printf(“Error ex
popen()函数执行成功后,返回的是标准文件流指针,可以通过文件流函数(如fgets())获取执行命令的返回结果。这种方式比“临时文件”的方式效率要高,首推荐使用该方式。 popen执行完,必须调用“pclose”手动关闭文件流。 #include<iostream>#include<stdlib.h>#include<stdio.h>#include<string.h>intmain(intarg...
int pclose(FILE *fp); fp:为ponen返回的文件指针 返回值:成功返回cmdstring的终止状态;出错返回-1 下面是执行通过popen函数执行shell命令ls的代码 #include<stdio.h> int main() { FILE *fp = NULL; char data[100] = {'0'}; fp = popen("ls", "r"); if (fp == NULL) { printf("popen error!
pclose函数关闭标准I/O流,等待命令执行结束,然后返回shell的终止状态。(我们曾在http://www.cnblogs.com/nufangrensheng/p/3510101.html对终止状态进行过说明,system函数(http://www.cnblogs.com/nufangrensheng/p/3512291.html)也返回终止状态。)如果shell不能被执行,则pclose返回的终止状态与shell已执行exit(127...
int pclose(FILE *stream); popen函数会创建一个管道,并且创建一个子进程来执行shell,shell会创建一个子进程来执行command。根据type值的不同,分成以下两种情况。 如果type是r:command执行的标准输出,就会写入管道,从而被调用popen的进程读到。通过对popen返回的FILE类型指针执行read或fgets等操作,就可以读取到command的...
return-1; } while(NULL!=fgets(buff,sizeof(buff),fstream)) { printf("%s",buff); } pclose(fstream); return0; } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
下面的while循环,就是把返回的文件的内容读取到传入的sck文件描述符所指向的文件中,fileno是把文件指针转换为文件描述符 pclose函数就是关闭这个管道,它的返回值是新启动的这个程序的退出码,一般来说程序都返回0代表正确嘛,非零当然就表示程序可能有问题,如果是pclose函数错误会返回-1 ...
;/* 打印命令返回内容 */printf("Info: %s\n",szBuf);/* 不要忘记关闭句柄 */pclose(pResult...
pclose(fp); return 0; } “` 这段代码中,我们使用popen()函数执行了`ls -l`命令,并通过循环读取输出内容并打印。 以上就是在Linux编程中执行命令的三种常用方式,分别是使用系统调用函数、system()函数和popen()函数。通过这些方法,我们可以方便地在程序中执行命令。