C语言里有个popen函数,用来捕获shell里命令的输出,这样C和shell也可以相互通信了。在网上看了个例子修改了一下,原文:http://blogold.chinaunix.net/u/16292/showart_393022.html
/*
作用:演示popen用法,将源程序输出到argv[1]命名的文件中
使用:argv[0] outputFile
*/
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define CMDLEN 1024
int main(int argc, char** argv)
{
do
{
if ( 2 != argc)
{
printf("Usage:%s outputFile!\n",argv[0]);
break;
}
FILE *stream;
FILE *wstream;
char buf[1024];
char myCmd[CMDLEN];
memset(myCmd,0,CMDLEN);
strcpy(myCmd,"cat ");
strcat(myCmd,argv[0]);
strcat(myCmd,".c");
memset( buf, '\0', sizeof(buf) );//初始化buf,以免后面写如乱码到文件中
stream = popen( myCmd, "r" ); //将myCmd命令的输出 通过管道读取(“r”参数)到FILE* stream
wstream = fopen( argv[1], "w+"); //新建一个可写的文件
fread( buf, sizeof(char), sizeof(buf), stream); //将刚刚FILE* stream的数据流读取到buf中
fwrite( buf, 1, sizeof(buf), wstream );//将buf中的数据写到FILE *wstream对应的流中,也是写到文件中
pclose( stream );
fclose( wstream );
}while(0);
return 0;
}
分享到:
相关推荐
Linux系统中popen函数的缺陷与改造方案.pdf
Linux下使用popen()执行shell命令.docx
linux popen函数linux popen函数linux popen函数linux popen函数
popen()函数通过创建一个管道,调用fork()产生一个子进程,执行一个shell以运行命令来开启一个进程。这篇文章重点给大家介绍Linux中popen函数的作用,感兴趣的朋友一起看看吧
最近在做web服务器端处理。刚好用到要在服务器端调用popen函数查询相关命令,并上传到前端。所以在服务器端做的查询ip,mask等的测试代码。在linux下编译运行即可得到需要的值。代码简单。
Linux下面向函数的动态内存泄漏监测.pdf
跨平台实现异步执行命令,类似popen,可同时读写
本文定位:想通过python调用top命令获取cpu使用率但暂时没有思路的情况。 如果单纯为了获得cpu的利用率,通过top命令重定向可以轻松实现,命令如下: 复制代码 代码如下: top -bi > cpuHistory.log 或 复制代码 代码...
用pipe实现远程控制系统中的popen函数功能。参数f_des[0]从管道中读数据,f_des[1]向管道中写数据。通过管道实现父子进程间的通信。服务器可以向多个用户提供服务。
Linux系统。同一主机,ip为本地回环 “127.0.0.1” 需求概述 完成一个以socket套接字为基础的c/s服务器程序,该程序通过客户端与服务器端连接后,实现一个交互式SHELL的功能。 其中服务端用popen来创建子...
和之前C++执行Linux Bash命令的方法 一样,Python依然支持system调用和popen()函数来执行linux bash命令。 方法一:system调用 #仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 import os os....
linux下用popen加载命令行的程序,实用性很大
用C语言写的Linux下的多线程
fork和exec系列调用前后,进程在内存的“数据段”,“堆栈段”和“代码段”有什么不同?读了之后,你就会知道了,
这是一个演示linux下线程之间如何进行通讯的例子,使用了管道技术。主要使用了popen函数
使用linux下的sendmail程序来发送邮件,利用popen函数(python docs关于popen函数)可以直接调用linux系统程序,需要指定程序所在的位置。 python代码: #!/usr/bin/python # -*- coding: UTF-8 -*- #Author: ...
是一个代替用fork代替popen的api。 是开发一个项目发现的频繁使用popen,会出现异常。所以使用了fork替代popen。
4. 使用popen 5. 小结 1. 前言 Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作。比如实现一个ping程序来测试网络的连通性,...
Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间...(1)在两个程序之间传递数据的最简单的方法是使用popen()和pclose()函数: