|
发表于 2003-10-22 17:41:37
|
显示全部楼层
system(...)
单是有几个概念要分清:
1.shell 命令大多数是一个应用程序,如 ls, rm ,
2. 如果要调用 ls , rm , cat , dd, cp, mv, 等等命令,直接用
fork & exec 那一组函数就够了。
3. 如果是一个 shell 脚本程序, 也可以 fork & exec 。
4. 如果是 if , cd , umask, set , export 等命令, 我想调用他们
也没有什么用途。
5. 其实没有什么所谓的 shell 命令 ,大多数都是可运行的程序。
6. system 函数实际运行的是 "/bin/sh -c <string>" 其中 string 是你传递的参数, 也没有什么特殊的。
7. c++ 调用和 C 调用是一样的,都要使用系统调用, system 是库函数。 fork 和 execve 是系统调用, execl execlp execle execv execvp 都是库函数。
所有的 Linux 应用程序调用一个程序都是
fork & exec , 除了 fork 系统调用之外,没有任何创建进程的方法, 除了 exec 系统调用之外,没有任何方法可以运行程序。 |
|