我想用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