Blogger news

Followers

Showing posts with label 5th semester. Show all posts
Showing posts with label 5th semester. Show all posts
Tuesday, August 12, 2014
#A non-recursive shell script that accepts any number of arguments and prints #them in the Recursive order, (For example,if the script is named rargs,then #executing rags ABC should produce CBA on the standard output)

echo "input string is :$*"
for x in "$@"
do
y=$x" "$y
done
echo "reversed string is: $y"

---------
output:

sh <filename>.sh x y z
input sting is :x y z
reversed string is: z y x 
/* C program to do the following: Using fork() create a childprocess. The child process prints it's own process-id and id of it's parent and then exits. The parent process waits for it's child to finish(by executing the wait()) and prints it's own process-id and the id of it's child process and then exits*/
#include<stdio.h>
#include<string.h>

int main()
{
    char i[10];
    int n,status=0;
    for(;;)
    {
    printf(">");
    gets(i);
    n=fork();
   
    if(n==0)
    {
        printf("my process  id =%d\n",getpid());
        printf("my parent process id=%d\n",getppid());
        exit(0);   
    }
    else if(n>0)
    {
        while(waitpid(n,status,0)<0)
        {   
           
            break;
        }
        printf("the child process=%d\n",n);
        printf("my id is=%d\n",getpid());
    }
    else
    {
        printf("error\n");
    }
    }
    return (0);
}
Friday, July 25, 2014
/*C program that creates a child process to read commands from the standard input and execute them.You can assume that no arguments will be passed to the commands to be executed*/

#include<stdio.h>
#include<unistd.h>
int main()
{
    char i[10];
    int n;
    //int status;
    while(1)
    {
        printf("Enter your command\n");
        get(i);
        n=fork()
       
        if(n==0)
        {   /*it's for executes in new process execl("/bin/sh/","sh","-c",i,null)
              and add library unisd.h*/

            

             execl("/bin/sh/","sh","-c",i,null);
            exit(0);
        }
        else if(n>0)
        {    /*sometime wait() is not working then you change wait function to
            this following part:
                while(waitpid(n,status,0)<0)
                {
                    break;
                }
            */

            wait();
       
        }
        else
        {
            printf("error\n");
        }
    }
    return(0);
}