C Programming Tutorial

 
 
 
 

Image

# include <stdio.h>
# include </usr/include/sys/types.h>
# include </usr/include/sys/shm.h>
# include </usr/include/sys/ipc.h>

# include \"forkjoin.h\"
int main()
{
    int arr1[10]={1,1,1,1,1,1,1,1,1,1};
    int id;
    int iCount;
    int shmid;
    int *arr2;
        shmid=shmget(IPC_PRIVATE,20,IPC_CREAT| SHM_R | SHM_W);
    arr2=(int *)shmat(shmid,0,0);

    for(iCount=0;iCount<10;iCount++)
    {
        arr2[iCount]=2;
    }



    /* Copy Array-1 to Array-2 Using 2 Processes */
    id=process_fork(2);
    if(id==0)
    {
        /* Parent Process */
        for(iCount=0;iCount<10;iCount=iCount+2)
        {
            arr2[iCount]=arr1[iCount];    
        }
    }
    else
    {
        /* Child Process */
        for(iCount=1;iCount<10;iCount=iCount+2)
        {
            arr2[iCount]=arr1[iCount];
        }
    }

    process_join(2,id);

    printf(\"\\n Array 2 ... \\n\");

    for(iCount=0;iCount<10;iCount++)
    {
        printf(\"arr2[%d] : %d\\n\",iCount,arr2[iCount]);
    }    

    return 0;
}

 
 
Didn't find what you were looking for? Find more on Program to copy the contents of one array to another Using Shared Memory