#include <stdio.h> #include \"headfork.h\" #include \"headsem.h\" #include \"headshr.h\" main() { int i,j,no,nprc,t,id,shmid1,shmid2,shmid3; int *arr,*index,*lock; lock=(int *)shared(sizeof(int)*2,&shmid1); arr=(int *)shared(sizeof(int)*10,&shmid2); index=(int *)shared(sizeof(int)*2,&shmid3); printf(\"Enter the limit of an array: \"); scanf(\"%d\",&no); printf(\"\\nEnter the values :\"); for(i=0;i<no;i++) { printf(\"\\narr[%d] : \",i); scanf(\"%d\",(arr+i)); } printf(\"\\nEnter the constant value : \"); scanf(\"%d\",&t); lock_init(lock); *index=0; printf(\"\\nEnter the no.of proc : \"); scanf(\"%d\",&nprc); id=p_fork(nprc); j=0; for(i=0;i<no;i++) { locksem(lock); j=*index; *index=*index + 1; unlock(lock); if(j>no) break; *(arr+j)+=t; } p_join(nprc,id); printf(\"\\nAfter adding %d const to array is :\",t); for(i=0;i<no;i++) printf(\"\\n%d\",*(arr+i)); } OUTPUT knoppix@ttyp0[pp]$ cc add_const_ss.c knoppix@ttyp0[pp]$ ./a.out Enter the limit of an array: 5 Enter the values : arr[0] : 2 arr[1] : 4 arr[2] : 1 arr[3] : 3 arr[4] : 6 Enter the constant value : 3 Enter the no.of proc : 3 After adding 3 const to array is : 5 7 4 6 9