Я пытаюсь запустить sender.cpp и receiver.cpp из файла master.cpp. Когда я запускаю свой файл master.cpp, и он не открывает ни файл sender.cpp, ни receive.cpp.
Я уже пытался заменить каждую команду exec.
//Master.cpp
int main(int argc, char *argv[])
{
cout << "main running" << endl;
int qid = msgget(IPC_PRIVATE, IPC_EXCL | IPC_CREAT|0600);
char* args[2];
string sender = "./sender";
args [0] = (char*) sender.c_str();
args [1] = NULL;
pid_t cpid = fork();
if (cpid == 0){
printf("Master file: created sender with PID %d.\n", getpid());
execvp(args[0], args);
}
.....
//Sender.cpp
...
int main(int argc, char *argv[])
{
int running = 1;
struct my_msg_st some_data;
int msgid;
char buffer[BufSIZ];
msgid = msgget((key_t)1234, 0666 | IPC_CREAT);
if (msgid == -1){
fprint(stderr, "msgget failed with error: %d\n", errno);
exit(EXIT_FAILURE);
}
while(running) {
printf("Enter some text: ");
fgets(buffer, BUFSIZ, stdin);
some_data.my_msg_type = 1;
strcpy(some_data.some_text, buffer);
if (msgsnd(msgid, (void *)&some_data, MAX_TEXT, 0) == -1){
fprintf(stderr, "msgsnd failed\n");
exit(EXIT_FAILURE);
}
if (strncmp(buffer, "end", 3) == 0){
running = 0;
}
}
exit(EXIT_SUCCESS);
}
После запуска файла master.cpp он должен запросить ввод из файла отправителя в терминале, а затем отправить сообщение наприемник.