C++:如何将参数传递给可执行文件?

C++: How to pass arguments to an executable?

我有 2 个程序(可执行文件)客户端和服务器。客户端从用户那里捕获2个整数,并将它们传输给服务器。服务器进行计算并 returns 给客户端。

但我不知道如何将参数从客户端传递到服务器。

    #include <cstdlib>
    #include <iostream>
    #include <unistd.h>
    #include <sys/types.h>

    using namespace std;

    int main(int argc, const char* argv[]){

        argv[0] = "server"; // the Server program, located in the same directory

        int int1, int2;
        char operator1;

        //data entry
        cout << "Please enter 2 integers" << endl;
        cin >> int1 >> int2;
        cout << "Please enter a character, either a + or a -" << endl;
        cin >> operator1;

        int PID = fork(); // creating a child process

        while (operator1 == '+' || operator1 =='-') { 
            if (PID == 0){
                execl(arg[0], "server", NULL); // child process (server code).
//How to pass the items to this program?
                _exit(EXIT_FAILURE);
            }
            else if (PID < 0){
                perror("execution failed\n");
                exit(EXIT_FAILURE);
            }
        // re-enter data
        cout << "Please enter 2 integers" << endl;
        cin >> int1 >> int2;
        cout << "Please enter a character, either a + or a -" << endl;
        cin >> operator1;
        }
        return 0;
    }

参数作为附加 char * 参数传递给 execl()。

将您的参数转换为 char 字符串,并将它们作为附加参数传递给 execl()。

或者使用 exec() 的其他几个替代版本,例如 execvp(),如果它们使用的替代参数传递约定对您来说更方便的话。