/ / serve aiuto per usare xterm - c

bisogno di aiuto usando xterm - c

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" &

Qualche idea su come eseguire i comandi unix di cui sopra in c programmazione. Cerco di usare execl, ma non sembra funzionare. Grazie in anticipo.

#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;

}

risposte:

1 per risposta № 1

Usando il execv chiamata di sistema (pagina man di execv)

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int main(){
int pid;
int i=1;
char command[100];
char * args[] = {
"-e",
"bash",
"-c",
NULL,
NULL
};
sprintf(command, "{cat <fifo%d & tee fifo%d fifo%d}", i, i+1, i+2);
args[3] = command;

if ((pid = fork()) == -1)
perror("fork error");
else if (pid == 0)
execv("/usr/bin/xterm", args);
return 0;
}