Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 共享内存:shm_打开失败_C_Shared Memory - Fatal编程技术网

C 共享内存:shm_打开失败

C 共享内存:shm_打开失败,c,shared-memory,C,Shared Memory,我试图在Linux上用C创建一个共享内存空间,但是shm_open不断失败并返回-1。这可能是因为我不是这台计算机的root用户吗 以下是我正在尝试的: char *name = "name"; int shm_fd = shm_open(name, O_CREAT|O_RDWR, 0666); 但它总是返回-1。有什么建议吗?我听说shm_open的名称需要以/开头,所以我也尝试了char*name=“/name”,但仍然是一样的。请帮忙 什么是errno?使用perror或error报告错

我试图在Linux上用C创建一个共享内存空间,但是
shm_open
不断失败并返回-1。这可能是因为我不是这台计算机的root用户吗

以下是我正在尝试的:

char *name = "name";
int shm_fd = shm_open(name, O_CREAT|O_RDWR, 0666);

但它总是返回-1。有什么建议吗?我听说
shm_open
的名称需要以/开头,所以我也尝试了
char*name=“/name”
,但仍然是一样的。请帮忙

什么是
errno
?使用
perror
error
报告错误并自动获取错误消息。@JonathonReinhart
perror
给出了“没有这样的文件或目录”的提示。但奇怪的是,我重新启动了电脑,现在它可以正常工作了。如果你有任何想法的话,我仍然想知道会发生什么!您可能会检查节点“name”是否位于/dev/shm/下,这是一个类似的问题,答案建议检查O_CREAT和O_RDWR两个标志是否都正确设置。这为我解决了问题(我错过了第一个)