Hi, Mateus. Maybe it looks rude, but i want to correct you: fread, feof, fopen are _not_ system calls, as i remember. Your example is correct, but it makes no use of system calls. Your code is pure ISO C. :) Considering this, the program should look like this: #include <unistd.h> /*read(), close()*/ #include <fcntl.h> /*open()*/ #include <stdio.h> /*fprintf()*/ #include <sys/types.h> /**/ #include <errno.h> /* errno*/ #include <string.h> /* strerror(), memset()*/ int main(int argc, char **argv) { int fd; /*file descriptor*/ char buf[BUFSIZ]; /*buffer for reading data*/ int bytes_read = -1; /*bytes, already read from file*/ if (argc != 2) { fprintf(stderr, "Usage: %s <file>\n", argv[0]); return 1; } fd = open (argv[1], O_RDONLY); if (fd == -1) { fprintf(stderr, "%s: open() failed. Reason: %s", argv[0], strerror(errno)); return 1; } while (bytes_read != 0) { bytes_read = read(fd, buf, BUFSIZ); if (bytes_read == -1) { fprintf(stderr, "%s: read() failed. Reason: %s", argv[0], strerror(errno)); close(fd); return 1; } fprintf(stdout, "%s", buf); memset(buf, 0, BUFSIZ); } close(fd); return 0; } 2007/7/31, Mateus Interciso <p.zarnick@xxxxxxxxx>: > On Tue, 31 Jul 2007 04:27:13 -0700, nisa wrote: > > > hi, > > i am quite new to programming using system calls and would like a basic > > idea regarding the usage of system calls. > > i would like assistance in the following area of c programming in linux: > > 1.how to open a text file ,read data and print the data on console using > > system calls > > 2.create a text file and write some data 3.read data from a file and > > append that data to another file using lseek() 4.creation of a parent > > and child process using fork() > > Well, just to not let you in blank, here is a VERY simple file that reads > a text file, and output it to the screen > > #include <stdio.h> //standard IO > #include <stdlib.h> //for reading files > #include <string.h> //for memset > #include <errno.h> //for errno > int main(int argc, char *argv[]){ > FILE *fp = NULL; > char ch[1]; > > if(argc!=2){ > fprintf(stderr,"Usage:%s <file>\n",argv[0]); > return 1; > } > memset(ch,'\0',sizeof(char)*1); > if((fp=fopen(argv[1],"r"))==NULL){ > perror("fopen"); > return errno; > } > while(feof(fp)==0){ > if( (fread(ch,sizeof(char),1,fp)==0) && (feof(fp)==0) ){ > perror("fread"); > fclose(fp); > memset(ch,'\0',sizeof(char)*1); > return errno; > } > fprintf(stdout,"%c",ch[0]); > } > fclose(fp); > memset(ch,'\0',sizeof(char)*1); > return 0; > } > > Also, as it was stated before, use the man pages. If you don't have a > Linux box, then google will be your friend for this. > In this example, you would need, the man pages for fopen(),fread() and > feof(). > > Good luck. > > - > To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Wbr, Andriy Mishkovskyy. He's got a heart of a little child, and he keeps it in a jar on his desk. - To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html