Question

Using the file descriptor table for a process, answer the following questions. Note: the dup(), pipe()...

Using the file descriptor table for a process, answer the following questions. Note: the dup(), pipe() , and open() system calls always use the lowest numbered available file descriptor posi-tion.

(a) Label which entries in Table 2 refer to stdin, stdout, andstderr

0 1 2 3 4 5

(b) Assume that stdin, stdout, and stderr are all open. Label in Table 3 what the file descriptor table would look like after the following code is executed:

int fd[2];
close(1);
pipe(fd);

0 1 2 3 4 5

(c) Assuming a fresh file descriptor table with only stdin, stdout, and stderr open, show in Table 4 the contents of file descriptor table after thefollowing code is executed:

close(2);
dup(1);

0 1 2 3 4 5
0 0
Add a comment Improve this question Transcribed image text
Answer #1

Standard file descriptors(fd) and the corresponding standard streams

fd

stream

0

stdin

1

stdout

2

stderr

Using the file descriptor table for a process, answer the following questions. Note: the dup(), pipe() , and open() system calls always use the lowest numbered available file descriptor posi-tion.

(a) Label which entries in Table 2 refer to stdin, stdout, and stderr

0

1

2

3

4

5

stdin

stdout

stderr

(b) Assume that stdin, stdout, and stderr are all open. Label in Table 3 what the file descriptor table would look like after the following code is executed:

int fd[2];
close(1); // closing the stdin

pipe(fd); // opening new file descriptor fd[0], fd[1]

0

1

2

3

4

5

stdin

fd[0]

stderr

fd[1]

(c) Assuming a fresh file descriptor table with only stdin, stdout, and stderr open, show in Table 4 the contents of file descriptor table after thefollowing code is executed:

close(2); //closing the stderr
dup(1); // new file descriptor newfd is a duplicate of file descriptor 1 (stdout)

0

1

2

3

4

5

stdin

stdout

newfd(stdout)

Add a comment
Know the answer?
Add Answer to:
Using the file descriptor table for a process, answer the following questions. Note: the dup(), pipe()...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • This is for a Unix class. Please fully answer the question :) The figure that it references is on...

    This is for a Unix class. Please fully answer the question :) The figure that it references is on the attached picture. I have also added the information that comes with that figure. 3.3 Assume that a process executes the following three function calls: fdl-open (path, oflags); fd2 = dup ( fd ) ; fd3-open (path, oflags); Draw the resulting picture, similar to Figure 3.9. Which descriptors are affected by an fentl on fdl with a command of F_SETFD? Which...

  • In Unix/Linux, input and output are treated as files and referenced by the operating system using file descriptors. When you open a shell session, for example, three file descriptors are in use: 0 st...

    In Unix/Linux, input and output are treated as files and referenced by the operating system using file descriptors. When you open a shell session, for example, three file descriptors are in use: 0 standard input (stdin) 1 standard output (stdout) 2 standard error (stderr) By default, the command interpreter (shell) reads keyboard input from file descriptor 0 (stdin) and writes output to file descriptor 1 (stdout), which appears on the screen. As you explored in Lab 2, input/output can be...

  • Directions: use only the signal mechanism system calls don’t use ( wait() or pipe() )in this...

    Directions: use only the signal mechanism system calls don’t use ( wait() or pipe() )in this problem. You can still read/write from/to a file. You must use ( kill() and pause() ) system calls. rewrite code below to do kill and pause system calls #include <fcntl.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/wait.h> // Function ptototypes int readX(); void writeX(int); int main() { int pid; // pid: used to keep track of the child process int x...

  • C Language Programming. Using the program below - When executing on the command line only this...

    C Language Programming. Using the program below - When executing on the command line only this program name, the program will accept keyboard input and display such until the user does control+break to exit the program. The new code should within only this case situation “if (argc == 1){ /* no args; copy standard input */” Replace line #20 “filecopy(stdin, stdout);” with new code. Open read a text file “7NoInputFileResponse.txt” that contains a message “There were no arguments on the...

  • Exercise 8.4.1: Operations on files. 0 About Current directory File descriptors Open file table Symbolic Descriptor...

    Exercise 8.4.1: Operations on files. 0 About Current directory File descriptors Open file table Symbolic Descriptor name index File length Disk block # Descriptor Current index position free 20 5 7 | free 8 | 16 9 free abc free 16100 free 18 free 192808 550 40 test free Disk xxx free free XXXXXXXX XXX 256 bytes • Each entry in the current directory contains the symbolic name of a file, together with the index into the array of file...

  • 2. capture This solution to this problem will require using some system calls that will be...

    2. capture This solution to this problem will require using some system calls that will be discussed in week 3. This program should accept the name of a file that includes a list of commands (one per line) to execute. Each line of the file should be executed by a subprocess and the output written to the file capture.txt For example, given the command file: /bin/ls-1 /bin/cat apple banana usr/bin/wc -1-wcanteloupe The output saved to capture.txt might be: W1 schubert...

  • GIVEN CODE- FILL IN THE BLANK! #include <fcntl.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <string.h>...

    GIVEN CODE- FILL IN THE BLANK! #include <fcntl.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/wait.h> // Function ptototypes int readX(); void writeX(int); int main() /// chi read x ---> divi ---> write x into file ---> par read x --> sub--> write x into file---> chi read x-->etc {    int pid;           // pid: used to keep track of the child process    int x = 19530;       // x: our value as integer   ...

  • writting a c program that does the following: example output • Use Descriptor I/O operations to...

    writting a c program that does the following: example output • Use Descriptor I/O operations to open the file specified as a command line argument and read at least one byte from the sequence of bytes before Hard Coded Pause Point 1. Use file system operations to remove the i-node entry for the file opened in between Hard Coded Pause Point 1 and Hard Coded Pause Point 2. You may assume the file specified on the command line will have...

  • devmem2.c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <errno.h> #include <signal.h> #include <fcntl.h> #include...

    devmem2.c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <errno.h> #include <signal.h> #include <fcntl.h> #include <ctype.h> #include <termios.h> #include <sys/types.h> #include <sys/mman.h>    #define FATAL do { fprintf(stderr, "Error at line %d, file %s (%d) [%s]\n", \ __LINE__, __FILE__, errno, strerror(errno)); exit(1); } while(0) #define MAP_SIZE 4096UL #define MAP_MASK (MAP_SIZE - 1) int main(int argc, char **argv) { int fd; void *map_base = NULL, *virt_addr = NULL; unsigned long read_result, writeval; off_t target; int access_type = 'w';    if(argc...

  • Convert C to C++ I need these 4 C file code convert to C++. Please Convert...

    Convert C to C++ I need these 4 C file code convert to C++. Please Convert it to C++ //////first C file: Wunzip.c #include int main(int argc, char* argv[]) { if(argc ==1){ printf("wunzip: file1 [file2 ...]\n"); return 1; } else{ for(int i =1; i< argc;i++){ int num=-1; int numout=-1; int c; int c1;    FILE* file = fopen(argv[i],"rb"); if(file == NULL){ printf("Cannot Open File\n"); return 1; } else{ while(numout != 0){    numout = fread(&num, sizeof(int), 1, file);    c...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT