• exec函数族


    1.execl函数

    #include

        int execl(const char *path, const char *arg, ...);

        参数:

            -path:需要指定的执行文件的路径或者名称

            -*arg:是可执行文件所需要的参数列表

                第一个参数一般没有什么作用,一般写的是执行的程序的名称

                从第二个参数开始往后,就是程序执行所需要的参数列表,参数最后需要以NULL(哨兵)结尾。

        返回值:

            只有调用失败,才会有返回值,返回-1,并设置errno

            调用成功没有返回值。

    1. #include
    2. #include
    3. #include
    4. int main() {
    5. //创建一个子进程,在子进程中执行exec函数族中的函数
    6. pid_t pid = fork();
    7. if(pid > 0) {
    8. //父进程
    9. printf("I am parent process: pid: %d\n", pid);
    10. sleep(1);
    11. } else if(pid == 0){
    12. //子进程
    13. execl("hello", "hello", NULL);
    14. printf("I am child process, pid : %d\n", getpid());
    15. }
    16. for(int i = 0; i < 3; i++) {
    17. printf("i = %d, pid = %d\n", i, getpid());
    18. }
    19. return 0;
    20. }

    2.execlp函数

    #include

        int execlp(const char *file, const char *arg, ...

        参数:

            -会到环境变量中查找指定的可执行文件,如果找到了就执行,找不到就执行不成功

            -file:需要指定的执行文件的文件名

            -*arg:是可执行文件所需要的参数列表

                第一个参数一般没有什么作用,一般写的是执行的程序的名称

                从第二个参数开始往后,就是程序执行所需要的参数列表,参数最后需要以NULL(哨兵)结尾。

        返回值:

            只有调用失败,才会有返回值,返回-1,并设置errno

            调用成功没有返回值。

    1. #include
    2. #include
    3. #include
    4. int main() {
    5. //创建一个子进程,在子进程中执行exec函数族中的函数
    6. pid_t pid = fork();
    7. if(pid > 0) {
    8. //父进程
    9. printf("I am parent process: pid: %d\n", pid);
    10. sleep(1);
    11. } else if(pid == 0){
    12. //子进程
    13. execlp("ps", "ps", "aux", NULL);
    14. printf("I am child process, pid : %d\n", getpid());
    15. }
    16. for(int i = 0; i < 3; i++) {
    17. printf("i = %d, pid = %d\n", i, getpid());
    18. }
    19. return 0;
    20. }

  • 相关阅读:
    洛谷P1227 完美的对称
    中标麒麟 NeoKylin 5.1 安装C++环境
    lwIP 开发指南(中)
    Linux /proc 文件系统-机型定义
    七、Request&Response
    facebook群控如何做?使用静态住宅ip代理有什么好处?
    javacpp gradle集成
    v-bind绑定
    【描述性指标】节点中心性指标
    Golang:将日志以Json格式输出到Kafka
  • 原文地址:https://blog.csdn.net/ME_Liao_2022/article/details/132944562