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
using r language
8. Cash RegisterThis exercise assumes you have created the RetailItem class for Programming Exercise 5. Create a CashRegister class that can be used with the RetailItem class. The CashRegister class should be able to internally keep a list of RetailItem objects. The class should have the following methods: A method named purchase_item that accepts a RetailItem object as an argument. Each time the purchase_item method is called, the RetailItem object that is passed as an argument should be added to the list. A method named get_total that returns the total price of all the RetailItem objects stored in the CashRegister object’s internal list. A method named show_items that displays data about the RetailItem objects stored in the CashRegister object’s internal list. A method named clear that should clear the CashRegister object’s internal list. Demonstrate the CashRegister class in a program that allows the user to select several items for purchase. When the user is ready to check out, the…
5. RetailItem ClassWrite a class named RetailItem that holds data about an item in a retail store. The class should store the following data in attributes: item description, units in inventory, and price. Once you have written the class, write a program that creates three RetailItem objects and stores the following data in them: Description    Units in Inventory    PriceItem #1    Jacket    12    59.95Item #2    Designer Jeans    40    34.95Item #3    Shirt    20    24.95
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
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT