Dear R-people!

I’m trying to write a C program that write to the standard input of R
and read the standard output.
I can perfectly read the R output, but I’m not able of writing anything
to R.

This program really works with the ‘cat’ UNIX command, but it does not
work with R. What I’m doing wrong??? It is possible to do it???

I want to start R once and use it thousands of times... that’s why I’m
trying to use this system.


      pipe(fdW);
      pipe(fdR);

        pid = fork();
        if (pid==-1)
                perror("Error fork");
        
        if (pid==0)
        {
                close(0);
                dup(fdW[0]);
                close(fdW[0]);
                close(fdW[1]);
                
                close(1);
                dup(fdR[1]);
                close(fdR[1]);
                close(fdR[0]);
                
                execlp("R","R","--slave",NULL);
                perror("Error exec");
        }
        else
        {
                close(fdW[0]);
                close(fdR[1]); 

                write(fdW[1], "3+7", 3);

                total = 0;
                while (total<3)
                {
                        leidos = read(fdR[0], &k, sizeof(k));
                        printf("leidos son %d \n",leidos);
                        k[leidos]='\0';
                        if (leidos > 0){
                                total = total + leidos;
                                printf("%s\n",k);
                        }
                }
        }
        exit(0);


Best regards,
Victor

______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to