From f844fafd324fbf4c7a986df2f0814f2e2d93bcd8 Mon Sep 17 00:00:00 2001 From: Miguel Date: Thu, 13 Sep 2018 14:32:28 +0200 Subject: thinking about syscalls and pipes --- test/pipetest.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 test/pipetest.c (limited to 'test') diff --git a/test/pipetest.c b/test/pipetest.c new file mode 100644 index 0000000..e848049 --- /dev/null +++ b/test/pipetest.c @@ -0,0 +1,54 @@ +#include +#include +#include + +int main(int argc, char *argv[]) +{ + printf("LINUX PIPE TEST\n"); + + if(argc<=1) + { + printf("one argument please [read|write]\n"); + } + + if(!strcmp(argv[1],"read")) + { + FILE *p=fopen("./testpipe","r"); + printf("opened for reading\n"); + printf("feof: %i\n",feof(p)); + + if(p==NULL) + { + int err=errno; + printf("Opening pipe failed with errno %d : %s\n",err,strerror(err)); + } + + while(1) + { + char buf[256]; + int ret=fread(buf,1,10,p); + buf[10]=0; + printf("read: %i %s\n",ret,buf); + printf("feof: %i\n",feof(p)); + if (feof(p)) break; + } + } + + if(!strcmp(argv[1],"write")) + { + FILE *p=fopen("./testpipe","a"); + printf("opened for writing\n"); + if(p==NULL) + { + int err=errno; + printf("Opening pipe failed with errno %d : %s\n",err,strerror(err)); + } + fwrite("DUPA123",1,7,p); + fwrite("DUPA123",1,7,p); + for(int i=0;i<10000;i++) + { + fwrite("DUPA123",1,7,p); + } + //fclose(p); + } +} -- cgit v1.2.3