Allow a process to create another process running

Assignment Help Computer Engineering
Reference no: EM132217495

Writing popen() and pclose()

The stand I/O library in C contains the functions:

FILE *popen(const char *command, const char *mode); int pclose(FILE *stream);

where "command" is the name of an executable program (normally a shell command), "mode" refers to whether the calling process will read or write to the pipe and "stream" refers to a file pointer.

The purpose of popen() is to allow a process to create another process running the program "command" which it will communicate with using an unnamed pipe.

To achieve this, the function popen() needs to execute several system calls. The diagram below gives the relationships of the processes and pipe.

| original process |>---pipe---->| new process | |that executes popen()| |running "command"|

In this assignment, you will write both the popen() and pclose() functions and use them in a program. Remember that pclose() allows the original process to be a good parent.

Your code needs to consider the following points:

The pipe() system call returns a pair of file descriptors. However, popen() return a file pointer. Use the function FILE* fdopen() to convert the file descriptor into a file pointer.

Appropriately close() the unused file descriptor in the parent and the child. The function popen() knows which to close() because of the mode parameter.

The child needs to use either dup() or dup2() to redirect standard input or standard output.

The child needs to close unneeded file descriptors before it does an exec*() (the command parameter).

The parent needs to perform all its tasks before it calls pclose(). Be careful with order of operations.

Reference no: EM132217495

Questions Cloud

Produce a program that sorts a list of numbers in ascending : Your job is to produce a program that sorts a list of numbers in ascending order. Your program will need to read-in, from a file, a list of integers.
Evaluate the use of post-loss risk transfer mechanisms : Advanced risk financing and transfer - To enable candidates to understand the role that risk financing and risk transfer play in risk management
Write out the algorithm on paper of how you propose : If a user enters one of these values, you are to print out the channel number along with its network affiliation.
Prompt the user to enter the data to populate the structure : The program should then prompt the user to enter the data to populate the structure. Finally, use printf( ) to display the information entered by the user.
Allow a process to create another process running : Write both the popen() and pclose() functions and use them in a program. Remember that pclose() allows the original process to be a good parent.
Write a method search that takes input of an numerical array : Write a method Search that takes input of an numerical array A of size n and a specific value key.
Ask the users to enter the number of days in the specified : Test this class, the program will first ask the users to enter the number of days in the specified period and the temperature on the first day.
Identify the research approach typically used for each issue : Identify the research approach typically used for each issue by filling out the University of Phoenix Material: Communication Research Methods Matrix.
Examine the excerpts from literature reviews : Examine the excerpts from literature reviews in AppendixCnear the end of this book.Do the authors use the parenthetical and non-parenthetical in text citations?

Reviews

Write a Review

Computer Engineering Questions & Answers

  Mathematics in computing

Binary search tree, and postorder and preorder traversal Determine the shortest path in Graph

  Ict governance

ICT is defined as the term of Information and communication technologies, it is diverse set of technical tools and resources used by the government agencies to communicate and produce, circulate, store, and manage all information.

  Implementation of memory management

Assignment covers the following eight topics and explore the implementation of memory management, processes and threads.

  Realize business and organizational data storage

Realize business and organizational data storage and fast access times are much more important than they have ever been. Compare and contrast magnetic tapes, magnetic disks, optical discs

  What is the protocol overhead

What are the advantages of using a compiled language over an interpreted one? Under what circumstances would you select to use an interpreted language?

  Implementation of memory management

Paper describes about memory management. How memory is used in executing programs and its critical support for applications.

  Define open and closed loop control systems

Define open and closed loop cotrol systems.Explain difference between time varying and time invariant control system wth suitable example.

  Prepare a proposal to deploy windows server

Prepare a proposal to deploy Windows Server onto an existing network based on the provided scenario.

  Security policy document project

Analyze security requirements and develop a security policy

  Write a procedure that produces independent stack objects

Write a procedure (make-stack) that produces independent stack objects, using a message-passing style, e.g.

  Define a suitable functional unit

Define a suitable functional unit for a comparative study between two different types of paint.

  Calculate yield to maturity and bond prices

Calculate yield to maturity (YTM) and bond prices

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd