关于进程间通信:C语言popen-函数调用其他进程返回值
前言当咱们想用C语言调用一个现有程序, 并且想获取程序返回值而不是在终端输入, 那么就必须调用popen( )函数了. popen( ) 会创立一个管道, 并启动新过程, 通过管道进行过程间通信。popen( ) 返回一个文件指针,相似fopen( ), 只不过关上的不是文件, 文件指针用来读取或写入子过程的输出/输入。 popen( ) 函数有两种模式:读模式r和写模式w。在读模式下,从子过程的输入中读取数据;在写模式下,将数据写入子过程的输出。 一、popen( ) 函数原型popen( )在规范库<stdio.h>中的函数原型: man文档 #include <stdio.h> FILE *popen(const char *command, const char *type); int pclose(FILE *stream);文件指针须要被回收, 用pclose( ) 函数. 二、应用示例 (AI提供)以下代码在Linux和Windows下都能够用, ls -l 是一个Linux命令, 用于显示指定工作目录下之内容(列出目前工作目录所含的文件及子目录)。 #include <stdio.h>int main(){ FILE *fp; char buffer[1024]; // 执行命令并读取输入 fp = popen("ls -l", "r"); if (fp == NULL) { printf("无奈执行命令\n"); return 1; } // 读取输入并打印 while (fgets(buffer, sizeof(buffer), fp) != NULL) { printf("%s", buffer); } // 敞开文件指针 pclose(fp); return 0;}总结我在一篇文章中, 应用了 popen( ) 函数调用 wmic cpu get 命令, 并将其输入传入程序, 判读电脑cpu属性. ...