[linux操作系统实验]进程的控制(execl()第二个传参为什么是可执行程序名)

/ 2,256评论 / 8772阅读 / 1点赞

问题

实验示例代码中,调用execl()时,第二个传参为什么会是可执行程序名:

execl("/bin/ls", "ls", "-l", "-color", NULL)

#include <iostream>
using namespace std;

int main(int aNum, char** aStr)
{
        cout << "hello,coolight" << endl;
        cout << "main参数列表:" << endl;
        for(int i = 0; i < aNum; ++i)
                cout << i + 1 << " : " << aStr[i] << endl;

        return 0;
}

实验具体内容

实验内容

涉及的系统调用

在Linux中fork()是一个非常有用的系统调用,但在Linux中建立进程除了fork()之外,也可用与fork() 配合使用的exec()。

exec()系列

exec()fork()联合使用

int status;
     ............
if (fork() == 0)
{
     ............
     execl(...);
     ............
}
wait(&status);

wait()

exit()

源代码

#include <iostream>
#include <unistd.h>
#include "sys/wait.h"
#include "sys/types.h"
using namespace std;
int main()
{
        cout << "<< coolgiht" << endl;
        int status, renum_fork = fork();
        if(renum_fork == -1){
                cout << "<< fork error!" << endl;
        }else if(renum_fork == 0){ //子进程
                execl("./hello", "hello", "-1", "-2", NULL);
                cout << "execl error!" << endl;
        }else{  //父进程
                wait(NULL);
                cout << "<< 完成!" << endl;
        }
        return 0;
}
#include <iostream>
using namespace std;
int main(int aNum, char** aStr)
{
        cout << "hello,coolight" << endl;
        cout << "main参数列表:" << endl;
        for(int i = 0; i < aNum; ++i)

                cout << i + 1 << " : " << aStr[i] << endl;

        return 0;
}

运行结果截图

思考

  1. Edwardcit说道:

    pharmacies en ligne certifiГ©es: kamagra en ligne – Pharmacie Internationale en ligne

  2. AllenTal说道:

    trouver un mГ©dicament en pharmacie: Acheter Cialis – trouver un mГ©dicament en pharmacie

  3. RobertDer说道:

    https://kamagraenligne.com/# acheter médicament en ligne sans ordonnance

  4. IgnacioelOrb说道:

    pharmacie en ligne sans ordonnance: Levitra sans ordonnance 24h – Achat mГ©dicament en ligne fiable

  5. Edwardcit说道:

    pharmacie en ligne pas cher: Pharmacie sans ordonnance – trouver un mГ©dicament en pharmacie

  6. Keithhak说道:

    SildГ©nafil Teva 100 mg acheter Meilleur Viagra sans ordonnance 24h Viagra vente libre pays

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注