summaryrefslogtreecommitdiff
path: root/1088/CH24/EX24.2
diff options
context:
space:
mode:
authorpriyanka2015-06-24 15:03:17 +0530
committerpriyanka2015-06-24 15:03:17 +0530
commitb1f5c3f8d6671b4331cef1dcebdf63b7a43a3a2b (patch)
treeab291cffc65280e58ac82470ba63fbcca7805165 /1088/CH24/EX24.2
downloadScilab-TBC-Uploads-b1f5c3f8d6671b4331cef1dcebdf63b7a43a3a2b.tar.gz
Scilab-TBC-Uploads-b1f5c3f8d6671b4331cef1dcebdf63b7a43a3a2b.tar.bz2
Scilab-TBC-Uploads-b1f5c3f8d6671b4331cef1dcebdf63b7a43a3a2b.zip
initial commit / add all books
Diffstat (limited to '1088/CH24/EX24.2')
-rwxr-xr-x1088/CH24/EX24.2/Example2.sce74
-rwxr-xr-x1088/CH24/EX24.2/Result2.txt92
2 files changed, 166 insertions, 0 deletions
diff --git a/1088/CH24/EX24.2/Example2.sce b/1088/CH24/EX24.2/Example2.sce
new file mode 100755
index 000000000..32a03a740
--- /dev/null
+++ b/1088/CH24/EX24.2/Example2.sce
@@ -0,0 +1,74 @@
+clear
+flag=1
+mode(-1)
+clc
+
+printf("Example 2 : Show the method of showing PID,PPID in both parent and child process \n")
+disp("****************************************************************")
+disp("Answer : ")
+disp("INSTRUCTIONS : ")
+halt(' ')
+disp("1.These programs are part of systems programming PURELY in Unix and the commands have NO EQUIVALENT IN SCILAB")
+halt(' ')
+disp("2.However the .c files which are displayed here are also made into a seperate file.If you are a unix user then try compiling and running the programme with gcc or cc compiler")
+halt(' ')
+disp("3.The outputs displayed here are just MOCK OUTPUTS which are DISPLAYED IN THE TEXTBOOK")
+halt(' ')
+disp("4.The inconvenience is regretted.")
+halt('.............Press [ENTER] to continue.....')
+halt("")
+clc
+printf("\tUNIX SHELL SIMULATOR(DEMO VERSION WITH PRELOADED COMMANDS)\n\n\n")
+i=0
+i=i+1;f(i)='/* Program: fork.c -- A simple fork Shows PID,PPID in both parent and child*/'
+i=i+1;f(i)=''
+i=i+1;f(i)='#include <stdio.h>'
+i=i+1;f(i)='#include <sys/types.h>'
+i=i+1;f(i)=''
+i=i+1;f(i)='int main(void) {'
+i=i+1;f(i)=' pid_t pid;'
+i=i+1;f(i)=' '
+i=i+1;f(i)=' printf('+ascii(34)+'Before forking\n'+ascii(34)+');'
+i=i+1;f(i)=' pid = fork(); /* Replicates current processes */'
+i=i+1;f(i)=' '
+i=i+1;f(i)=' if(pid >0) { /* In the parent process; make sure */'
+i=i+1;f(i)=' sleep(1); /* That the parent does not die before child */'
+i=i+1;f(i)=' printf('+ascii(34)+'PARENT -- PID: %d PPID %d, CHILD PID: %d\n'+ascii(34)+',getpid(),getppid(),pid);}'
+i=i+1;f(i)=' '
+i=i+1;f(i)=' else if (pid == 0) /* In the child process */'
+i=i+1;f(i)=' printf('+ascii(34)+'CHILD -- PID: %d PPID: %d\n'+ascii(34)+',getpid(),getppid());'
+i=i+1;f(i)=' else { /* pid must be -1 here */'
+i=i+1;f(i)=' printf('+ascii(34)+'Fork error\n'+ascii(34)+');'
+i=i+1;f(i)=' exit(1);}'
+i=i+1;f(i)=' printf('+ascii(34)+'Both process continue from here\n'+ascii(34)+'); /* In both processes */'
+i=i+1;f(i)=' exit(0);'
+i=i+1;f(i)='}'
+n=i
+
+printf("\n\n$ cat fork.c # to open the file emp.lst")
+halt(' ')
+u=mopen('fork.c','wt')
+for i=1:n
+ mfprintf(u,"%s\n",f(i))
+ printf("%s\n",f(i))
+end
+mclose(u)
+halt('')
+clc
+
+halt(' ')
+ printf("$ cc fork.c")
+ halt(' ')
+ printf("$ a.out")
+ halt(' ')
+ printf("Before forking\nCHILD -- PID: 1556 PPID: 1555\nBoth processes continue from here # This statement runs in child\nPARENT -- PID: 1555 PPID: 1450,CHILD PID: 1556\nBoth processes continue from here ...as well as in parent\n")
+ halt(' ')
+
+printf("\n\n\n$ exit #To exit the current simulation terminal and return to Scilab console\n\n")
+halt("........# (hit [ENTER] for result)")
+//clc()
+
+printf("\n\n\t\t\tBACK TO SCILAB CONSOLE...\nLoading initial environment')
+sleep(1000)
+
+
diff --git a/1088/CH24/EX24.2/Result2.txt b/1088/CH24/EX24.2/Result2.txt
new file mode 100755
index 000000000..38007bf78
--- /dev/null
+++ b/1088/CH24/EX24.2/Result2.txt
@@ -0,0 +1,92 @@
+ ans =
+
+ 1.
+
+-->exec('Example2.sci')
+
+-->clear
+
+-->flag=1
+ flag =
+
+ 1.
+
+-->mode(-1)
+Current date is 23-Jun-2013
+
+Welcome to the Textbook Companionship Project 2013
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Book Title : UNIX CONCEPTS AND APPLICATIONS
+
+ Book Edition : 4
+
+ Book Author : Sumitabha Das
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Code Author : Pranav Bhat T
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Chapter Number : 23
+
+ Chapter Title : Systems programming II- Files
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+Example 2 : Show the method of showing PID,PPID in both parent and child process
+
+ ****************************************************************
+
+ Answer :
+
+ INSTRUCTIONS :
+
+ 1.These programs are part of systems programming PURELY in Unix and the commands have NO EQUIVALENT IN SCILAB
+
+ 2.However the .c files which are displayed here are also made into a seperate file.If you are a unix user then try compiling and
+ running the programme with gcc or cc compiler
+
+ 3.The outputs displayed here are just MOCK OUTPUTS which are DISPLAYED IN THE TEXTBOOK
+
+ 4.The inconvenience is regretted.
+.............Press [ENTER] to continue..... UNIX SHELL SIMULATOR(DEMO VERSION WITH PRELOADED COMMANDS)
+
+
+
+
+$ cat fork.c # to open the file emp.lst /* Program: fork.c -- A simple fork Shows PID,PPID in both parent and child*/
+
+#include <stdio.h>
+#include <sys/types.h>
+
+int main(void) {
+ pid_t pid;
+
+ printf("Before forking\n");
+ pid = fork(); /* Replicates current processes */
+
+ if(pid >0) { /* In the parent process; make sure */
+ sleep(1); /* That the parent does not die before child */
+ printf("PARENT -- PID: %d PPID %d, CHILD PID: %d\n",getpid(),getppid(),pid);}
+
+ else if (pid == 0) /* In the child process */
+ printf("CHILD -- PID: %d PPID: %d\n",getpid(),getppid());
+ else { /* pid must be -1 here */
+ printf("Fork error\n");
+ exit(1);}
+ printf("Both process continue from here\n"); /* In both processes */
+ exit(0);
+}
+ $ cc fork.c $ a.out Before forking
+CHILD -- PID: 1556 PPID: 1555
+Both processes continue from here # This statement runs in child
+PARENT -- PID: 1555 PPID: 1450,CHILD PID: 1556
+Both processes continue from here ...as well as in parent
+
+
+
+$ exit #To exit the current simulation terminal and return to Scilab console
+
+........# (hit [ENTER] for result)
+
+ BACK TO SCILAB CONSOLE...
+Loading initial environment
+-->diary(0)