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++ - puntatori
Forum - C/C++ - puntatori - Pagina 3

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Ucciditore (Normal User)
Newbie


Messaggi: 6
Iscritto: 06/03/2006

Segnala al moderatore
Postato alle 19:48
Lunedė, 06/03/2006
Ragazzi sono uno studente che da poco si ? inscritto a questo forum. Ho dei problemi con un esercizio di C sotto Linux che riguarda la coda di messaggi. Sapreste dirmi dove sbaglio?

#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 19:48
Lunedė, 06/03/2006
Ragazzi sono uno studente che da poco si ? inscritto a questo forum. Ho dei problemi con un esercizio di C sotto Linux che riguarda la coda di messaggi. Sapreste dirmi dove sbaglio?

#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
Pagine: [ 1 2 3 ] Precedente | Prossimo