c程序调用shell命令方法

来源:互联网 发布:星空卫视网络直播源 编辑:程序博客网 时间:2024/06/06 05:07

Unix/Linux终端下面的命令都是一个程序,在c语言程序中可以调用

1.system函数,这个是c标准库函数(stdlib.h),所以unix和windows下都可以用。比如:

system("ls -l");
运行结果:
[root@localhost day08]# ./a.out 总计 32-rwxr-xr-x 1 root root 4722 07-11 22:45 a.out-rwxr-xr-x 1 root root 4612 07-11 16:37 proc-rw-r--r-- 1 root root  102 07-11 22:45 proc.c-rw-r--r-- 1 root root  303 07-11 16:36 signal.c-rw-r--r-- 1 root root  384 07-11 12:11 vfork.c-rw-r--r-- 1 root root  311 07-11 10:25 wait.c

2.exec系列函数,unix系统函数,头文件 unistd.h

这里只说4个函数,函数原型:

int execl(const char *path, const char *arg, ...);int execlp(const char *file, const char *arg, ...);int execv(const char *path, char *const argv[]);int execvp(const char *file, char *const argv[]);
execl和execv的区别是,execl后面是参数列表,execv则是将列表放到数组argv中;后面加p的函数可以借助环境变量,而不加p的函数必须把文件路径带上。用法如:
excel("/bin/ls","ls","-l",NULL);

 

注:exec系列函数会把内存空间切换到其指定的新程序中,所以exec后面的代码将不会被执行到。

        其实system函数实现就是fork()了一个子进程去调用exec,所以归根结底还是exec系列函数啊。

原创粉丝点击