Computer Systems: A Programmer's Perspective (3rd Edition)
Computer Systems: A Programmer's Perspective (3rd Edition)
3rd Edition
ISBN: 9780134092669
Author: Bryant, Randal E. Bryant, David R. O'Hallaron, David R., Randal E.; O'Hallaron, Bryant/O'hallaron
Publisher: PEARSON
Question
Book Icon
Chapter 10.9, Problem 10.4PP
Program Plan Intro

“dup2” function:

  • This function is used to copies the entry of old descriptor table to new descriptor table entry.
  • Format for “dup2” function is given below,

    int dup2(int oldFD, int newFD);

  • From the above format, “oldFD” means old descriptor table entry and “newFD” means new descriptor table entry.
    • It is used to copy the content of “oldFD” to “newFD”.
    • If “newFD” was already open, then “dup2” function closes the “newFD” before it copies “oldFD”.

Example:

The example for “dup2” function is shown below:

Consider the function “dup2(4, 1)”.

  • There are five file descriptors for given function that is “fd0”, “fd1”, “fd2”, “fd3”, and “fd4”. Each process in the LINUX begins life with three files they are
    • File descriptor “fd0” – standard input
    • File descriptor “fd1” – standard output
    • File descriptor “fd2” – standard error
  • For this function, assume two files such as “file A” and “file B”. Each file contains file table and v-node table.
    • The entries in file table are file position and reference count.
    • The entries in v-node table are file access, file size and file type.
  • Before calling “dup2(4, 1)”:
    • The “fd1” points to “file A” and “fd4” points to “file B”.
    • The reference count for both files are equal to “1”.
  • After calling “dup2(4, 1)”:
    • Both “fd1” and “fd2” corresponds to “file B”.
    • The “file A” has been closed and the entries in file table and v-node table of “file A” deleted.
    • The reference count for “file B” is incremented that is now reference count is “2”.
      • From the above description, any data written to standard output are redirected to “file B”.

Blurred answer
Students have asked these similar questions
(In java please) ( NO TOY CLASS PLEASE READ INSTRUCTION OR DOWN VOTE PLEASE LOOK AT TWO IMAGES BELOW FIRST ONE IS CURRENCY CLASS NEED THE SECOND IS INSTRUCTIONS ON HOW TO MAKE TEST CLASS. PLEASE NO TOY CLASS OR DOWN VOTE USE CURRENCY CLASS INSTEAD AND UPDATE IT) THIS A LinkNode structure or class which will have two attributes - a data attribute, and a pointer attribute to the next node. The data attribute of the LinkNode should be a reference/pointer of the Currency class of Lab 2. Do not make it an inner class or member structure to the SinglyLinkedList class of #2 below. A SinglyLinkedList class which will be composed of three attributes - a count attribute, a LinkNode pointer/reference attribute named as and pointing to the start of the list and a LinkNode pointer/reference attribute named as and pointing to the end of the list. Since this is a class, make sure all these attributes are private. The class and attribute names for the node and linked list are the words in bold in #1…
(defmacro mac (start end)   `(dfs ,start ,end nil nil))   (defun dfs (current-state goal-state path &optional (solution-found nil))   (cond     ((and solution-found (equal current-state goal-state))      (format t "Solution: ~A~%" (reverse path)))     ((member current-state path)      nil)     (t      (let ((new-paths (generate-next-states current-state)))        (dolist (new-state new-paths)          (dfs new-state goal-state (cons current-state path) t))))))   (defun generate-next-states (state)   (let* ((m (car state))          (c (cadr state))          (b (caddr state))          (next-states '()))     (loop for m-move from 0 to m           do (loop for c-move from 0 to c                    do (when (valid-move m-move c-move m c b)                         (let* ((new-state (update-state state m-move c-move))                                (missionaries-on-left (- m m-move))                                (cannibals-on-left (- c c-move))…
(Use Python) Use the Design Recipe to write a function,  print_histogram  that consumes a list of numbers and prints a histogram graph using asterisks to represent each number in the list. Use one output line per number in the list. You may assume that only integers are passed to this function.  Your function should ignore negative values.        Test Result print_histogram([ 2, 0, 4, 1]) ** ***** print_histogram([10, 5, 3, -1, 8]) **************************
Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning