Using the following c program, use the read() command to read one line of data f
ID: 3887074 • Letter: U
Question
Using the following c program, use the read() command to read one line of data from data.txt, and the write() command to display the line of text to the console display from the file data.txt.
#include
#include
#include
#include
#include
char buffer[256];
int main(int argc, char *argv[])
{
int i, n, fd;
if (argc != 2)
{
printf("Error : Invalid # of args ");
return (-1);
}
printf("argv[0]=%s argv[1] = %s ", argv[0], argv[1]);
if ((fd = open(argv[1], O_RDONLY)) == -1)
{
perror("Can not open file data.txt");
return(-1);
}
n = read(fd, buffer, sizeof(buffer) - 1);
if (n <= 0)
{
perror("Can not open file data.txt");
return(-1);
}
printf("The number of bytes read was %d ", n);
//your code here
if (close(fd) == -1)
{
perror("Can not close the file!");
return (-1);
}
}
EX: ./a.out data.txt
Explanation / Answer
#include<stdio.h>
#include<unistd.h>
#include<sys/stat.h>
#include<sys/types.h>
char buffer[256];
int main(int argc, char *argv[])
{
int i, n, fd;
if (argc != 2)
{
printf("Error : Invalid # of args ");
return (-1);
}
printf("argv[0]=%s argv[1] = %s ", argv[0], argv[1]);
if ((fd = open(argv[1], O_RDONLY)) == -1)
{
perror("Can not open file data.txt");
return(-1);
}
n = read(fd, buffer, sizeof(buffer) - 1);
if (n <= 0)
{
perror("Can not open file data.txt");
return(-1);
}
printf("The number of bytes read was %d ", n);
//your code here
write(1,buffer,256);//here in the file descriptors position...1.. is used.. it is for standard output...
if (close(fd) == -1)
{
perror("Can not close the file!");
return (-1);
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.