Determine the fork and execlp functions - linux, Operating System

Assignment Help:

Assignment

  • What I'm covering:
  • General control flow
  • fork()
  • execlp()
  • Parameters
  • Makefiles
  • Additional Questions

General Control Flow/fork()

  • In the Controller:

int main(int argc,char** argv){

.....

for(i = 0;i < 4;i++){

int ret_pid = fork();

if ( ret_pid < 0 ) exit(1); //this means fork() failed

else if ( ret_pid == 0 ) !  //this is the child

else ...  //this is the parent (Controller)

}

return 0;

}

 

execlp()

  • This function call has a lot of gotchas that look very confusing at first glance.
  • The first argument to execlp is the string with the file name that will be executed...and so is the second.
  • Think about your own program being called from the command-line ( > ./a.out arg1 arg2 ). In this case, the value of argv[0] in the program is "a.out".

Same thing applies when using exec, you just have to be explicit about it.

 

More execlp() and parameters

  • The rest of the parameters to execlp are strings containing the rest of the arguments, in our case, the numbers that the calculator will be operating on.
  • These will be passed to Controller as arguments, and from there, they will be passed to Calculator.
  • No matter what, the last argument to execlp MUST be a null-terminator (NULL or (char*) 0).

This is because the argument list must be null-terminated, just like any other string.

 

Makefiles

  • This assignment requires that TWO executables be created: the Controller and the Calculator.
  • Because of how Eclipse generates its makefiles, if you try to do this in a single project, Eclipse will whine. I recommend doing your coding in a normal text editor (gedit, emacs, vi, bluefish, etc.), and writing your own makefile.
  • There are plenty of makefile tutorials online; but this project (and the next one) will not require a particularly complex makefile.

 

Makefile example

  • Here's the general format of a makefile entry:

[target] : [dependency1] ! [dependencyn] [command to execute]

  • In this example, when you call make target, the make program checks if any of the dependencies of target are out of date.
  • If one or more of them is out of date, the command to execute is run.

Related Discussions:- Determine the fork and execlp functions - linux

Define a policy for data storage, Produce a referenced four page report whi...

Produce a referenced four page report which describes the possible functionality of the system; similar systems that are out there and different possible approaches to delivering t

What is banker''s algorithm, What is banker's algorithm? Banker's algor...

What is banker's algorithm? Banker's algorithm is a deadlock avoidance algorithm that is applicable to a resource-allocation system with multiple examples of each resource type

Explain the thread local storage (tls), Explain the Thread Local Storage (T...

Explain the Thread Local Storage (TLS)    Windows NT provides unique functions for per-thread data management. Thread local storage (TLS) is a concept defined in NT so develope

Case studies, Did Abhinav agree to the initial timeline requested by Rebecc...

Did Abhinav agree to the initial timeline requested by Rebecca

Explain swapping, Explain Swapping Swapping is a method of temporarily ...

Explain Swapping Swapping is a method of temporarily removing inactive programs from the memory of computer system.

Relationship among a(x, Q. The RC 4000 system as well as other systems hav...

Q. The RC 4000 system as well as other systems have defined a tree of processes (called a process tree) such that all the descendants of a process are given resources (objects) as

Define action that implementing meaning of instruction, Determine how Actio...

Determine how Action implementing instruction’s meaning are a actually carried out   Action implementing meaning of instruction are a actually carried out Instruction executio

Give an overview of unix based file systems, Give an overview of UNIX based...

Give an overview of UNIX based file systems. UNIX and UNIX-like operating systems allocate a device name to each device, other than this isn't how the files on that device are

Define the client - server communications environment, Define the Client - ...

Define the Client - Server Communications Environment Today's client - server communications environment offers programmers great flexibility for application design. Applicatio

Operation managmant, what is the function of operation management?

what is the function of operation management?

Write Your Message!

Captcha
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