programming using system calls
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()
Signature · 2 lines
View this message in context: http://www.nabble.com/programming-using-system-calls-tf4192448.html#a11922382 Sent from the linux-c-programming mailing list archive at Nabble.com.
this sounds awfully like homework.
Quoted 20 lines · nisa
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 usinglseek()4.creation of a parent and child process usingfork()--
View this message in context: http://www.nabble.com/programming-using-system-calls-tf4192448.html#a11922382
Sent from the linux-c-programming mailing list archive at Nabble.com.-
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): [email protected]
2007/7/31, nisa <[email protected]>:
Quoted 11 lines
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 usinglseek()4.creation of a parent and child process usingfork()
Quoted 9 lines
--
View this message in context: http://www.nabble.com/programming-using-system-calls-tf4192448.html#a11922382
Sent from the linux-c-programming mailing list archive at Nabble.com.-
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Well, as far as i know, man pages are a good source of knowledge. Wait, i'll check that. Hm... Yeah, they are. :)
Everything that you are looking for is situated in the second section of man pages.
Signature · 3 lines
Wbr, Andriy Mishkovskyy. He's got a heart of a little child, and he keeps it in a jar on his desk.
Quoted 9 lines · nisa
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 usinglseek()4.creation of a parent and child process usingfork()
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.
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()*/
intmain(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 <[email protected]>:
Quoted 58 lines · nisa
Quoted 10 lines
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 usinglseek()4.creation of a parent and child process usingfork()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
intmain(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() andfeof().Good luck.
-
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 3 lines
Wbr, Andriy Mishkovskyy. He's got a heart of a little child, and he keeps it in a jar on his desk.
Quoted 29 lines · Андрій Мішковський
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;
Quoted 8 lines
}
while (bytes_read != 0)
{
bytes_read = read(fd, buf, BUFSIZ);
if (bytes_read == -1)
{
fprintf(stderr, "%s: read() failed. Reason: %s", argv[0],
Quoted 12 lines
strerror(errno)); close(fd); return 1; } fprintf(stdout, "%s", buf); memset(buf, 0, BUFSIZ); } close(fd); return 0; }
Quoted 58 lines
2007/7/31, Mateus Interciso <[email protected]>:
Quoted 57 lines · nisa
Quoted 10 lines
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 usinglseek()4.creation of a parent and child process usingfork()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
intmain(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 [email protected] More majordomo info at
http://vger.kernel.org/majordomo-info.html
You are absolutly right, I'm terrible sorry...It's just that it has been so long since I haven't used open(), read(), close(), that I must have gone crazy, I'm terribly sorry for this.
Mateus
-
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 11 lines · nisa
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 usinglseek()4.creation of a parent and child process usingfork()
Quoted 9 lines
--
View this message in context: http://www.nabble.com/programming-using-system-calls-tf4192448.html#a11922382
Sent from the linux-c-programming mailing list archive at Nabble.com.-
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Recommend the Unix&&Linux system&&C program bible: Advanced Programming in the UNIX Environment author:W. Richard Stevens
lyb