网站建设 产品拍照,问卷调查网站怎么做,门户网站建设安全管理制度,漳州做网站公司老林的C语言新课, 想快速入门点此 C 语言编程核心突破 C语言popen函数调用其他进程返回值 前言一、popen( ) 函数原型二、使用示例 (C 知道提供)总结 前言
当我们想用C语言调用一个现有程序, 并且想获取程序返回值而不是在终端输出, 那么就必须调用popen( )函数了.
… 老林的C语言新课, 想快速入门点此 C 语言编程核心突破 C语言popen函数调用其他进程返回值 前言一、popen( ) 函数原型二、使用示例 (C 知道提供)总结 前言
当我们想用C语言调用一个现有程序, 并且想获取程序返回值而不是在终端输出, 那么就必须调用popen( )函数了.
popen( ) 会创建一个管道, 并启动新进程, 通过管道进行进程间通信。popen( ) 返回一个文件指针类似fopen( ), 只不过打开的不是文件, 文件指针用来读取或写入子进程的输入/输出。
popen( ) 函数有两种模式读模式r和写模式w。在读模式下从子进程的输出中读取数据在写模式下将数据写入子进程的输入。 一、popen( ) 函数原型
popen( )在标准库stdio.h中的函数原型: man文档 #include stdio.hFILE *popen(const char *command, const char *type);int pclose(FILE *stream);文件指针需要被回收, 用pclose( ) 函数.
二、使用示例 (C 知道提供)
以下代码在Linux和Windows下都可以用, ls -l 是一个Linux命令, 用于显示指定工作目录下之内容列出目前工作目录所含的文件及子目录)。
#include stdio.hint 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;
}总结
我在2022-12-11 Windows下如何用C/C获取cpu数量和物理核数文章中, 使用了 popen( ) 函数调用 wmic cpu get 命令, 并将其输出传入程序, 判读电脑cpu属性.
虽然C语言课本不会介绍这个标准库函数, 但既然这么有用, 还是掌握一下. 老林的C语言新课, 想快速入门点此 C 语言编程核心突破