25 Ocak 2016 Pazartesi

Queue Oluşturma,Mesaj Gönderme ,Mesaj Alma (msgget,msgsnd,msgrcv)






     //QUEUE OLUŞTURMA    
int open_queue( key_t keyval )
{
        int     qid;

        if((qid = msgget( keyval, IPC_CREAT | 0660 )) == -1)
        {
                return(-1);
        }

        return(qid);
}

   // NOWAİT OLUŞTURMA(Nowait Eger Que Dolu İse Sistemin Beklemesini Saglar.
bu süredede sürekli kontrol Edilir Kuyruk Boşaldımı Diye)






//MESAJ GÖNDERME 


int send_message( int qid, struct mymsgbuf *qbuf )
{
        int     result, length;

  /* The length is essentially the size of the structure minus sizeof(mtype) */
        length = sizeof(struct mymsgbuf) - sizeof(long);        

        if((result = msgsnd( qid, qbuf, length, 0)) == -1)
        {
                return(-1);
        }
        
        return(result);
}



//MESAJI ALMAK


int read_message( int qid, long type, struct mymsgbuf *qbuf )
{
        int     result, length;

/* The length is essentially the size of the structure minus sizeof(mtype) */
        length = sizeof(struct mymsgbuf) - sizeof(long);        

        if((result = msgrcv( qid, qbuf, length, type,  0)) == -1)
        {
                return(-1);
        }
        
        return(result);

}
Share: