C中调用shell命令的方法 popen演示
以下是 popen.c
#include <stdio.h> int main(){ FILE * fp; char str[1024]; if(NULL==(fp=popen("pwd","r"))){ return -1; }else{ printf("%s",fgets(str,1023,fp)); pclose(fp); } return 0; } |
编译运行的结果:
lily@LLY:~/test$ gcc popen.c lily@LLY:~/test$ ./a.out /home/lily/test lily@LLY:~/test$ |
另如果只是要执行shell命令,而不管输出的话,有可以用system函数:
man system这么说:
NAME system - execute a shell command SYNOPSIS #include <stdlib.h> int system(const char *command); DESCRIPTION system() executes a command specified in command by calling /bin/sh -c command, and returns after the command has been completed. During execution of the command, SIGCHLD will be blocked, and SIGINT and SIGQUIT will be ignored. |
eexpress 在 2008年01月03日 20:21 说:【 】
应该还可以管道输出的。
perl是这样。试试。
sub xclip {
open(XCLIP, “|/usr/bin/xclip”) or warn(”No xclip – use .p\n”),
return;
print XCLIP $_[0];
close XCLIP;
}
bones7456 在 2008年01月06日 21:32 说:【 】
perl的不懂哦~