Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Coda di messaggi
Forum - C/C++ - Coda di messaggi

Avatar
Ucciditore (Normal User)
Newbie


Messaggi: 6
Iscritto: 06/03/2006

Segnala al moderatore
Postato alle 11:13
Domenica, 12/03/2006
C'? qualcuno che saprebbe aiutarmi in un programma sulla coda di messaggi?

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 15:29
Domenica, 12/03/2006
Se puoi fare delle domande un po' pi? tecniche e meno generiche certamente, ma sicuramente nessuno qui ti scriver? l'intera applicazione ;)


Il mio blog: https://piero.dev
PM Quote
Avatar
Ucciditore (Normal User)
Newbie


Messaggi: 6
Iscritto: 06/03/2006

Segnala al moderatore
Postato alle 15:48
Lunedė, 13/03/2006
#include<stdio.h>
#include<string.h>
#include<sys/types.h>
#include<sys/ipc.h>
#include<sys/msg.h>

struct{
   long numero;
   char messaggio[100];
   char presente;
   int who;
}mess;


key_t msgkey;
int msgid;
int k;

char menu;

int main(narg,argv,argc)
int narg;
char *argv[];
char *argc[];
{


    msgkey=ftok("miofile.txt",'b');
    msgid=msgget(msgkey,IPC_CREAT);
    mess.presente=1;

    if(msgid>=0){
        do{
            printf("----------------------CHAT--------------------\n");
            printf("<m = Manda Messaggio>\n");
            printf("<a = Aggiorna>\n");
            printf("<e = Esci>\n");
            printf("Scelta= ");
            menu=getchar();
                
            switch(menu){
            case 'm':

                printf("A chi vuoi mandare il messaggio? ");
                
                scanf("%ld",&mess.numero);

                printf("Scrivi il messaggio: ");
                scanf("%s",&mess.messaggio[0]);

                printf("Chi sei: ");
                scanf("%d",&mess.who);
                
                k=msgsnd(msgid,&mess,strlen(mess.messaggio),IPC_NOWAIT);
                break;

            case 'a':

                printf("Utenti Connessi: ");
                if(mess.presente==1)   printf("%c",mess.presente);

                k=msgrcv(msgid,&mess,strlen(mess.messaggio),mess.numero,IPC_NOWAIT);

                printf("%d",mess.who);
                printf(": ");
                printf("%s\n",mess.messaggio);


                break;

            case 'e':
                break;
            }
        }while(menu!='e');
        mess.presente=0;
        msgctl(msgid,IPC_RMID,0);
    }
  
    

return 0;
}

PM Quote
Avatar
Ucciditore (Normal User)
Newbie


Messaggi: 6
Iscritto: 06/03/2006

Segnala al moderatore
Postato alle 15:50
Lunedė, 13/03/2006
Sapete dirmi che c'? di sbagliato io apro un processo e lui scrive e legge nella coda di messaggi ma un altro processo non ci legge da quella coda


#include<stdio.h>
#include<string.h>
#include<sys/types.h>
#include<sys/ipc.h>
#include<sys/msg.h>

struct{
   long numero;
   char messaggio[100];
   char presente;
   int who;
}mess;


key_t msgkey;
int msgid;
int k;

char menu;

int main(narg,argv,argc)
int narg;
char *argv[];
char *argc[];
{


    msgkey=ftok("miofile.txt",'b');
    msgid=msgget(msgkey,IPC_CREAT);
    mess.presente=1;

    if(msgid>=0){
        do{
            printf("----------------------CHAT--------------------\n");
            printf("<m = Manda Messaggio>\n");
            printf("<a = Aggiorna>\n");
            printf("<e = Esci>\n");
            printf("Scelta= ");
            menu=getchar();
                
            switch(menu){
            case 'm':

                printf("A chi vuoi mandare il messaggio? ");
                
                scanf("%ld",&mess.numero);

                printf("Scrivi il messaggio: ");
                scanf("%s",&mess.messaggio[0]);

                printf("Chi sei: ");
                scanf("%d",&mess.who);
                
                k=msgsnd(msgid,&mess,strlen(mess.messaggio),IPC_NOWAIT);
                break;

            case 'a':

                printf("Utenti Connessi: ");
                if(mess.presente==1)   printf("%c",mess.presente);

                k=msgrcv(msgid,&mess,strlen(mess.messaggio),mess.numero,IPC_NOWAIT);

                printf("%d",mess.who);
                printf(": ");
                printf("%s\n",mess.messaggio);


                break;

            case 'e':
                break;
            }
        }while(menu!='e');
        mess.presente=0;
        msgctl(msgid,IPC_RMID,0);
    }
  
    

return 0;
}

PM Quote