server sending data
server sending data
#include <stdio.h>
#include <sys/sem.h>
#include <sys/shm.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
key_t key = 10;
int semid = semget(key,1,IPC_CREAT | 0666);
if(semid == -1)
{
perror("semget failed :");
exit(1);
}
else
{
printf("semid : %d\n",semid);
int ctl = semctl(semid,0,SETVAL,1);
if(ctl == -1)
{
perror("semctl failed :");
exit(1);
}
else
{
printf("semaphore initialized\n");
// struct sembuf buf={0,-1,0};//user will release semaphore
struct sembuf buf={0,-1,SEM_UNDO};//kernel will release semaphore
int op = semop(semid,&buf,1);
if(op == -1)
{
perror("semop falied :");
exit(1);
}
else
{
printf("semaphore Accessed!\n");
/////////////////
key_t key1 = 20;
int shmid = shmget(key1,10000,IPC_CREAT | 0660);
if(shmid == -1)
{
perror("Shmget failed :");
exit(1);
}
else
{
printf("shmid : %d\n",shmid);
char *ptr = shmat(shmid,NULL,0); //RDWR
if(ptr)
{
printf("Attached \n");
////////////////////
strcpy(ptr,"google");
////////////////////
}
printf("Detaching shared memory segment\n");
shmdt(ptr);
}
/////////////////
}
// printf("Releasing semaphore\n");
// semctl(semid,0,SETVAL,1);
}
}
}
Comments
Post a Comment