Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Write a C program which is called multiple_copies. This program copies one source file to two destination files as follows: $./multiple_copies source_file destination_file1 destination_file2 multiple_copies

Write a C program which is called multiple_copies. This program copies one source file to two destination files as follows:

$./multiple_copies source_file destination_file1 destination_file2

multiple_copies program copies the contents of source file (i.e., source_file) to any named two destination files in the command line.

The number of arguments should be 3 (without the multiple_copies). If the number of arguments is not 3, the program should display an error message saying:

Usage: multiple_copies source_file destination_file1 destination_file2.

3. When the source_file does not exist, the program should display an error message that includes the source file name, e.g., Opening Error!: source_file.

4. If the destination file exists, existing content of that file should be truncated (removed).

Note: You can use the sample code (fileio/copy.c in the tlpi-dist) covered in the lecture. Work in the fileio directory given in the source file distribution of the textbook, update the Makefile in the fileio directory to include the new file multiple_copies_yourName, compile using make multiple_copies_yourName'.

Below is copy.c

int main(int argc, char *argv[]) { int inputFd, outputFd, openFlags; mode_t filePerms; ssize_t numRead; char buf[BUF_SIZE]; if (argc != 3 || strcmp(argv[1], "--help") == 0) usageErr("%s old-file new-file ", argv[0]); /* Open input and output files */ inputFd = open(argv[1], O_RDONLY); if (inputFd == -1) errExit("opening file %s", argv[1]); openFlags = O_CREAT | O_WRONLY | O_TRUNC; filePerms = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; /* rw-rw-rw- */ outputFd = open(argv[2], openFlags, filePerms); if (outputFd == -1) errExit("opening file %s", argv[2]); /* Transfer data until we encounter end of input or an error */ while ((numRead = read(inputFd, buf, BUF_SIZE)) > 0) if (write(outputFd, buf, numRead) != numRead) fatal("write() returned error or partial write occurred"); if (numRead == -1) errExit("read"); if (close(inputFd) == -1) errExit("close input"); if (close(outputFd) == -1) errExit("close output"); exit(EXIT_SUCCESS); }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions

Question

Explain all drawbacks of the application procedure.

Answered: 1 week ago

Question

Determine Leading or Lagging Power Factor in Python.

Answered: 1 week ago