Привет,
Пытаюсь отдавать команды с помощью именованного канала mkfifo на с++.
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
int main()
{
int client_to_server;
char myfifo[] = "in";
char str[BUFSIZ];
while(1)
{
printf("Input message to serwer: ");
scanf("%s", str);
client_to_server = open(myfifo, O_WRONLY);
write(client_to_server, str, sizeof(str));
if(strcmp("exit",str) == 0)
break;
}
close(client_to_server);
/* remove the FIFO */
printf("done!\n");
return 0;
}
принмает команды gdb
$ gdb <in >out &
где in это именованный канал а out обычный файл.
При запуске с++ программы выполняется только одна первая команда, дальше команды не выполняются. Что делаю не так?