Question
Fill in the blanks please. #include #include #include #include #include #include // Function ptototypes int readX(); void writeX(int); int main() { int pid; // pid:
Fill in the blanks please.
#include
// Function ptototypes int readX(); void writeX(int);
int main() { int pid; // pid: used to keep track of the child process int x = 19530; // x: our value as integer int i; // iterator
// output inital value to the screen printf("x = %d ", x);
// Write x to file ______;
// loop 5 times for( i = 0; i<5; i++) { // output the current loop iteration printf(" ITERATION %d ", i+1);
// flush here so that the stdout buffer doesn't // get printed in both processes fflush(stdout);
// fork child process if (________) { perror("Error with fork"); exit(1); }
// Child waits a second for the parent to go first else if (_____) { _____; }
// Both processes read x from file ______;
// Parent prints parent, and performs subraction if (____) { printf("Parent: "); ____; }
// Child prints child, and performs division else if (____) { printf("Child: "); ____; }
// Both processes output x value and write x to file... printf("x = %d ", x); ______;
// The child terminates if (____) { ____; } }
exit(0); }
/// Returns the value read from .shareX.dat int readX() { char xChar[10]; // xChar: our value as a char int fd; // fd: file descriptor
// open to read and store x if ( (fd = open(".shareX.dat", O_RDONLY )) == -1 ) { perror("Error opening file"); exit(2); }
// read xChar from the file if ( read(fd, xChar, 10) == -1 ) { perror("Error reading file"); exit(3); }
// close file for reading close(fd);
// convert xChar to int and return return atoi(xChar); }
/// Writes the writeX value to the file .shareX.dat void writeX(int writeX) { char xChar[10]; // xChar: our value as a char int fd; // fd: file descriptor int xBytes; // how much to write
// open, clear, and create file if not createdi if ( (fd = open(".shareX.dat", O_CREAT | O_TRUNC | O_WRONLY, 0644 )) == -1 ) { perror("Error opening file"); exit(4); }
// convert x to char xBytes = sprintf(xChar, "%d", writeX);
// put xChar in file if ( write(fd, xChar, xBytes) == -1 ) { perror("Error writing to file"); exit(5); }
// close the file for writing close(fd);
return; }
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started