- 论坛徽章:
- 0
|
本帖最后由 inwing 于 2010-10-19 11:31 编辑
答案:6楼
popen一个shell 然后就直接输出了 并没有捕获到流
我肯定不是参数设置错误的问题 请教是什么原因?
- /* copy */
- #include <sys/types.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- int main( void )
- {
- FILE *stream;
- FILE *wstream;
- char buf[1024];
- memset( buf, '\0', sizeof(buf) );//初始化buf,以免后面写如乱码到文件中
- stream = popen( "ls -l", "r" ); //将“ls -l”命令的输出 通过管道读取(“r”参数)到FILE* stream
- wstream = fopen( "test_popen.txt", "w+"); //新建一个可写的文件
- fread( buf, sizeof(char), sizeof(buf), stream); //将刚刚FILE* stream的数据流读取到buf中
- fwrite( buf, 1, sizeof(buf), wstream );//将buf中的数据写到FILE *wstream对应的流中,也是写到文件中
- pclose( stream );
- fclose( wstream );
- return 0;
- }
复制代码 系统CentOS 5.2
这段执行没问题
但是我要是执行nginx的命令就无法获得返回值 |
|