我想用uClinux在嵌入式設備上實現共享內存。C共享內存
我的C源
#include <stdio.h>
#include <sys/shm.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <errno.h>
//using namespace std;
int main() {
int segment_id;
segment_id = shmget(04, getpagesize(), IPC_CREAT | 0666);
printf("Page size - %d\n",getpagesize());
printf("Error in socket - %d\n",errno);
}
我得到一個錯誤
Page size - 4096
Error in socket - 38
誰能幫助我? 謝謝。
我認爲如果出現錯誤(如果shmget()返回-1),則errno只設置爲有意義的值,否則它不代表任何內容。 – pmg 2010-09-21 13:18:32
segment_id = -1 – Meloun 2010-09-21 13:26:20
@pmg:是的,'errno'保留它設置的最後一個值,它可能在任何地方,除非你在系統調用之前明確地將它設置爲零,然後在調用之後檢查它。否則它有一個無意義的(剩餘)值。 – 2010-09-21 13:52:50