From b1f5c3f8d6671b4331cef1dcebdf63b7a43a3a2b Mon Sep 17 00:00:00 2001 From: priyanka Date: Wed, 24 Jun 2015 15:03:17 +0530 Subject: initial commit / add all books --- 1088/CH24/EX24.10/Example10.sce | 73 +++++++++++++++++++++++++++++++++++ 1088/CH24/EX24.10/Result10.txt | 84 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 157 insertions(+) create mode 100755 1088/CH24/EX24.10/Example10.sce create mode 100755 1088/CH24/EX24.10/Result10.txt (limited to '1088/CH24/EX24.10') diff --git a/1088/CH24/EX24.10/Example10.sce b/1088/CH24/EX24.10/Example10.sce new file mode 100755 index 000000000..c7481229c --- /dev/null +++ b/1088/CH24/EX24.10/Example10.sce @@ -0,0 +1,73 @@ +clear +flag=1 +mode(-1) +clc + +printf("Example 10 : Show the effect of using dup command to achieve both input and output redirection\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: dup.c -- Uses dup to achieve both input and output redirection Closes standard streams first before using dup */' +i=i+1;f(i)='#include ' +i=i+1;f(i)='#include ' +i=i+1;f(i)='#include ' +i=i+1;f(i)='#include ' +i=i+1;f(i)='#define MODE600 (S_IRUSR | S_IWUSR)' +i=i+1;f(i)='' +i=i+1;f(i)='int main(int argc,char **argv) {' +i=i+1;f(i)=' int fd1,int fd2;' +i=i+1;f(i)=' fd1 = open(argv[1],O_RDONLY);' +i=i+1;f(i)=' fd2 = open(argv[2], O_WRONLY | O_CREAT |O_TRUNC, MODE600);' +i=i+1;f(i)=' ' +i=i+1;f(i)=' close(STDIN_FILENO); /*This should return descriptor 0 */' +i=i+1;f(i)=' dup(fd1);' +i=i+1;f(i)=' close(STDOUT_FILENO); /*This should return descriptor 1 */' +i=i+1;f(i)=' dup(fd2);' +i=i+1;f(i)=' ' +i=i+1;f(i)=' execvp(argv[3], &argv[3]); /* Execute any filter */' +i=i+1;f(i)=' printf('+ascii(34)+'Failed to exec filter'+ascii(34)+');' +i=i+1;f(i)='}' +n=i + + +printf("\n\n$ cat dup.c # to open the file emp.lst") +halt(' ') +u=mopen('dup.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 shell.c") + halt(' ') + printf("$ a.out /etc/passwd passwd.cnt wc -1") + halt(' ') + printf("cat passwd.cnt") +halt(' ') +printf(" 37 /etc/passwd") +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.10/Result10.txt b/1088/CH24/EX24.10/Result10.txt new file mode 100755 index 000000000..9448d5ccc --- /dev/null +++ b/1088/CH24/EX24.10/Result10.txt @@ -0,0 +1,84 @@ + ans = + + 1. + +-->exec('Example10.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 : 24 + + Chapter Title : Systems programming II- Files ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +Example 10 : Show the effect of using dup command to achieve both input and output redirection + + **************************************************************** + + 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 dup.c # to open the file emp.lst /* Program: dup.c -- Uses dup to achieve both input and output redirection Closes standard streams first before using dup */ +#include +#include +#include +#include +#define MODE600 (S_IRUSR | S_IWUSR) + +int main(int argc,char **argv) { + int fd1,int fd2; + fd1 = open(argv[1],O_RDONLY); + fd2 = open(argv[2], O_WRONLY | O_CREAT |O_TRUNC, MODE600); + + close(STDIN_FILENO); /*This should return descriptor 0 */ + dup(fd1); + close(STDOUT_FILENO); /*This should return descriptor 1 */ + dup(fd2); + + execvp(argv[3], &argv[3]); /* Execute any filter */ + printf("Failed to exec filter"); +} + $ cc shell.c $ a.out /etc/passwd passwd.cnt wc -1 cat passwd.cnt 37 /etc/passwd + + +$ 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) -- cgit