Question: 2. Exploring envp: a. Modify showEnvp.c so it reports envp addresses in the same style as showArgs2 displays argv addresses. Save a copy of the

2. Exploring envp: a. Modify showEnvp.c so it reports envp addresses in the same style as showArgs2 displays argv addresses. Save a copy of the output in a file youll need to refer to it in part b. Provide a program listing, a status statement and 6-8 lines of output, but not all the output. (2) b. Inside your program use putenv to define one environment variable and setenv to redefine another. Do these values appear in the array envp or __environ or both? (2) c. Based on the program output sketch a data structure diagram for envp. You only need to include the first 3 environment variable values (2) Hand in a commented listing of your program, proof of testing and a status report. On your cover page, aside from your name, the course code, lab section and the assignment #. Make sure you include your student number. If I have to look it up to verify that you are doing the correct exercise - 2 marks off. If you do the wrong exercise 2 more marks will be deducted

showEnvp.c
#include  #include  #include  #include  int main(int argc, char * argv[],char * envp[]) { int i; fprintf(stdout,"My name is %s. I'm process #%d." "I have %d cmd line args ", argv[0],getpid(),argc); //Showing the available environment variables putenv("Hello=world"); for(i=0;envp[i];i++) fprintf(stdout,"%d. %s, (%d) ", i, envp[i],(int) strlen(envp[i])); //Does the same thing as the above loop //Add to your program to show results of setenv and putenv system("echo Result of system ;env | nl"); //TODO Finish the code.... //FIXME return 0; } 

showArgs2.c

#define POSIX #include #include #include int main(int argc, char * argv[],char * envp[]) { fprintf(stdout,"My name is %s. I'm process #%d." "I have %d cmd line args ", argv[0],getpid(),argc);

//Showing the command line args for(int i=0;argv[i];i++) fprintf(stdout,"%p. %s [%p] ", &argv[i], argv[i], argv[i]); fprintf(stdout,"Look at what's at location argv[argc]: location: %p value: %p ", &argv[argc], argv[argc]); system("bash"); //create a subshell to look at /proc/pid/cmdline

fprintf(stdout,"We're back "); fprintf(stdout," ... Just in time to leave!!! ");

return 0; }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!