Mail Archives: cygwin/1999/02/06/12:58:00
I cannot get this to work.
fdopen returns NULL and perror a bad file descriptor... which would suggest
that dup2 did not duplicate stdout in sp[1]...
It work under Solaris and other Unices...
void call_propice_cat(char *log_file)
{
int pid, sp[2];
if (socketpair(AF_UNIX, SOCK_STREAM, 0, sp) < 0) {
perror("call_propice: socketpair");
exit(1);
}
fcntl(sp[1], F_SETFD, 1); /* this is to avoid that the ns will be dup when we fork */
if ((pid = fork()) < 0) {
perror("fork");
exit(1);
}
if (pid) { /* The father */
close(sp[0]); /* Close one side */
fcntl(sp[1], F_SETFL, FNDELAY); /* I am not sure this is required... */
if (dup2(sp[1],1) < 0)
perror("call_propice_cat:dup2"); /* Get stdout plug on sp[1] */
/* dup2(sp[1],2); Get stderr plug on sp[1] */
propicefp = (FILE *)fdopen(sp[1], "r+");
if (! propicefp)
perror("call_propice_cat:fdopen"); /* Get stdout plug on
sp[1] */
setbuf(propicefp, NULL);
propiceInputId = XtAppAddInput(app_context, sp[1], (XtPointer)XtInputReadMask, read_propice, NULL);
} else { /* The child */
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
"J'en ai cauchemarde... Microsoft l'a fait."
Professional: http://www.laas.fr/~felix mailto:felix AT laas DOT fr
Personal: http://worldserver.oleane.com/felix mailto:felix AT dial DOT oleane DOT com
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
- Raw text -