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

How many cubic feet of storage space would require, Q. Presume that we agr...

Q. Presume that we agree that 1 kilobyte is 1,024 bytes 1 megabyte is 1,0242 bytes and 1 gigabyte is 1,0243 bytes. This progression carries on through terabytes, petabytes, and ex

Homework, Write an application that does the following:(1) fill an array wi...

Write an application that does the following:(1) fill an array with 50 random integers; (2) loop through the array, displaying each value, and count the number of negative values;

Android, Which android version is available till now

Which android version is available till now

Define deadlock, Define deadlock. A process requests resources; if the ...

Define deadlock. A process requests resources; if the resources are not available at that time, the process enters a wait state. Waiting processes might be never again change s

Explain multi-user based operating system, Multi-user - A multi-user Opera...

Multi-user - A multi-user Operating System permits for multiple users to use the same computer at the same time and/or different times. Below are some instances of multi-user Op

Write a short note on disk scheduling, Write a short note on disk schedulin...

Write a short note on disk scheduling   One of the responsibities of operating system O/S is to use the hardware efficiently. Whenever a process requires I/O to or from the

Explain process description in the unix system, Process Description A pr...

Process Description A process in UNIX is a somewhat complex set of data structures that provides the operating system with all of the information necessary to dispatch and manag

What are the operations that can be performed on a directory, What are the ...

What are the operations that can be performed on a directory? The operations that can be performed on a directory are Search for a file Create a file Delete a

Suggest a scheme for implementing this policy, Q. Consider a calculating e...

Q. Consider a calculating environment where a process is given the privilege of accessing object only n times. Suggest a scheme for implementing this policy. Answer: Add an i

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