0
mkfifo fifo1
mkfifo fifo2
mkfifo fifo3
xterm -e bash -c "cat <fifo1 & tee fifo2 fifo3" &
xterm -e bash -c "cat <fifo2 & tee fifo1 fifo3" &
xterm -e bash -c "cat <fifo3 & tee fifo1 fifo2" &
Любая идея, как выполнить приведенные выше команды unix в программировании c. Я пытаюсь использовать execl, но, похоже, не работает. Спасибо заранее.нужна помощь с использованием xterm
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main(){
int pid;
char parmList[100];
int i=1;
sprintf(parmList,"-e bash -c {cat <fifo%d & tee fifo%d fifo%d}",i,i+1,i+2);
if ((pid = fork()) == -1)
perror("fork error");
else if (pid == 0)
{
execl("/usr/bin/xterm","xterm",parmList,NULL);
}
return 0;
}
Прежде всего, 'execl' хочет программу аргументы _separate_. То есть один аргумент для '' -e '', один для' 'bash'' и т. д. –
Вы должны также убедиться, что ваш' char [] 'is' NULL'-terminated, используйте 'memset', прежде чем использовать массив. –
Вы уверены, что имеете в виду 'cat
anishsane