Warning:  Undefined array key "view" in /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php on line 2
Warning:  Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php:2) in /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php on line 47
Warning:  Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php:2) in /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php on line 48
Warning:  Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php:2) in /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php on line 49
Warning:  Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php:2) in /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php on line 50
Warning:  Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php:2) in /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php on line 51
/**
 *  invio e ricezione di un messaggio su una coda dallo stesso processo
 */
#include 
#include 
#include 
#include 
#include 
#define DIM_MSG 1024
typedef struct {
    long mtype;
    char mtext[DIM_MSG];
} msg;
int main() {
    int ds_coda;
    key_t chiave = 41;
    msg messaggio;
    if ((ds_coda = msgget(chiave, IPC_CREAT | IPC_EXCL | 0660)) == -1) {
        perror("msgget");
        exit(1);
    }
    // crea ed invia il messaggio
    messaggio.mtype = 1;
    strncpy(messaggio.mtext, "Hello world!", DIM_MSG);
    if (msgsnd(ds_coda, &messaggio, strlen(messaggio.mtext) + 1, IPC_NOWAIT) ==
        -1) {
        perror("msgsnd");
        exit(1);
    }
    strncpy(messaggio.mtext, "CANCELLO IL MESSAGGIO DAL BUFFER", DIM_MSG);
    // legge esso stesso il messaggio
    if (msgrcv(ds_coda, &messaggio, sizeof(messaggio) - sizeof(long), 0, 0) ==
        -1) {
        perror("msgrcv");
        exit(1);
    } else {
        printf("Messaggio letto: '%s'\n", messaggio.mtext);
    }
    // chiudo la coda
    msgctl(ds_coda, IPC_RMID, NULL);
}