#include <stdio.h>
int main(int argc, char *argv[])
{
char buf[128];
FILE *pp;
if( (pp = popen("ls -l", "r")) == NULL )
{
printf("popen() error!\n");
exit(1);
}
while(fgets(buf, sizeof(buf), pp))
{
printf("%s", buf);
}
pclose(pp);
return 0;
int main(int argc, char *argv[])
{
char buf[128];
FILE *pp;
if( (pp = popen("ls -l", "r")) == NULL )
{
printf("popen() error!\n");
exit(1);
}
while(fgets(buf, sizeof(buf), pp))
{
printf("%s", buf);
}
pclose(pp);
return 0;
}
eg:
由pid获取comm
#include<stdio.h>
int main(int argc,char *argv[])
{
if(2!=argc)
{
printf("error: need argv(pid)\n");
return -1;
}
char cmd[128]={0};
char comm[128]={0};
snprintf(cmd,127,"cat /proc/%s/comm",argv[1]);
FILE *pp;
if(!(pp = popen(cmd,"r")))
{
printf("popen error\n");
return -1;
}
while(fgets(comm,127,pp))
{
printf("pid=%s\tcomm=%s\n",argv[1],comm);
}
pclose(pp);
return 0;
}