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
(),如果它们使用的替代参数传递约定对您来说更方便的话。
我有 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
(),如果它们使用的替代参数传递约定对您来说更方便的话。