当前位置: 技术问答>linux和unix
请问怎样将system()系统调用执行的结果写到一个字符数组里去?
来源: 互联网 发布时间:2016-04-21
本文导语: 请问怎样将system()系统调用执行的结果写到一个字符数组里去? 比如我执行了 ls 这个指令,我想将本来显示在屏幕上的结果写入到字符数组里。 | 楼上正解,总比我快一步啊,呵呵 这...
请问怎样将system()系统调用执行的结果写到一个字符数组里去?
比如我执行了 ls 这个指令,我想将本来显示在屏幕上的结果写入到字符数组里。
比如我执行了 ls 这个指令,我想将本来显示在屏幕上的结果写入到字符数组里。
|
楼上正解,总比我快一步啊,呵呵
这里是APUE 2nd的参考代码
这里是APUE 2nd的参考代码
Figure 15.15. Invoke uppercase/lowercase filter to read commands
#include "apue.h"
#include
int
main(void)
{
char line[MAXLINE];
FILE *fpin;
if ((fpin = popen("myuclc", "r")) == NULL)
err_sys("popen error");
for ( ; ; ) {
fputs("prompt> ", stdout);
fflush(stdout);
if (fgets(line, MAXLINE, fpin) == NULL) /* read from pipe */
break;
if (fputs(line, stdout) == EOF)
err_sys("fputs error to pipe");
}
if (pclose(fpin) == -1)
err_sys("pclose error");
putchar('n');
exit(0);
}
|
if ((fp = popen(cmdline, "r")) == NULL)
cmdline就是你的命令行,你再从fp中读出来就可以了
cmdline就是你的命令行,你再从fp中读出来就可以了