Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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);
   }
}