I created example how to comunnicate with programe written in C throught messages queues. First run C program (it will create queue) then PHP script.C code compile with: gcc -std=c99 -o test_queue test_queue.ctest_queue.c:/*** Example how to use System V Messages Queues with PHP and C program.* This is simple server which create message queue and receive message from it.* Based on Beej's Guide to Unix IPC* Autor: Jan Drazil, <qeekin at gmail dot com>*/#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>/* Buffer struct for receiving messages */struct php_buf { long mtype; char msg[200];};int main(void){ struct php_buf buf; int msqid; key_t key; /* Generate key (/var/www/index.php must be accessible file) */ if((key = ftok("/var/www/index.php", 'G')) == -1) { perror("ftok"); exit(EXIT_FAILURE); } /* Create message queue */ if((msqid = msgget(key, 0666 | IPC_CREAT)) == -1) { perror("msgget"); exit(EXIT_FAILURE); } printf("Ready to get string from PHP!\n"); /* Receive message */ if(msgrcv(msqid, &buf, sizeof(buf.msg)-1, 0, 0) == -1) { perror("msgrcv"); exit(EXIT_FAILURE); } /* Eliminate segmentation fault */ buf.msg[199] = '\0'; printf("Recieved from PHP: %s\n", buf.msg); /* Destroy message queue */ if(msgctl(msqid, IPC_RMID, NULL) == -1) { perror("msgctl"); exit(EXIT_FAILURE); } return EXIT_SUCCESS;}test_queue.php:<?phpif(($key = ftok("/var/www/index.php", "G")) == -1) die("ftok");if(!msg_queue_exists($key)) die("message queue doesn't exists");if(($msqid = msg_get_queue($key)) === FALSE) die("msg_get_queue");echo "Sending text to msg queue.\n";if(!msg_send($msqid, 12, "Hello from PHP!\0", false)) die("msg_send");echo "Done"?>