您的位置:首页 > 运维架构 > Shell

[转] 用管道获得shell 命令的输出

2015-12-11 07:32 489 查看
用管道:

通过fgets(buf, n, ptr)buf就可以得到命令“ps -ef"一样的信息,

读帮助”man popen":

char *cmd = "ps -ef";

FILE *ptr;

if ((ptr = popen(cmd, "r")) != NULL)

while (fgets(buf, n, ptr) != NULL)

(void) printf("%s ",buf);

UID PID PPID C STIME TTY TIME CMD

root 0 0 0 Sep-30 ? 00:00:01 sched

root 1 0 0 Sep-30 ? 00:00:06 /etc/init -a

root 2 0 0 Sep-30 ? 00:00:00 vhand

root 3 0 0 Sep-30 ? 00:00:27 bdflush

root 4 0 0 Sep-30 ? 00:00:00 kmdaemon

root 5 1 0 Sep-30 ? 00:00:50 htepi_daemon /

root 6 0 0 Sep-30 ? 00:00:00 strd

root 2941 1 0 Oct-08 tty01 00:00:00 /bin/login ccb

root 43 1 0 Oct-08 ? 00:00:02 /etc/syslogd

root 47 1 0 Oct-08 ? 00:00:00 /etc/ifor_pmd

root 48 47 0 Oct-08 ? 00:00:13 /etc/ifor_pmd

root 36 1 0 Oct-08 ? 00:00:00
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: