【发布时间】:2010-09-21 13:07:36
【问题描述】:
我正在尝试使用 uClinux 在嵌入式设备上实现共享内存。
我的 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
谁能帮助我? 谢谢。
【问题讨论】:
-
我认为 errno 只有在出错时才设置为有意义的值(如果 shmget() 返回 -1),否则没有任何意义。
-
@pmg: 是的,
errno保留了它设置的最后一个值,它可能在任何地方,除非您在系统调用之前将其显式设置为零,然后在调用后检查它.否则它有一个无意义的(剩余的)值。 -
我删除了 C++ 标签,因为没有 C++ 源代码。