C 共享内存:shm_打开失败
我试图在Linux上用C创建一个共享内存空间,但是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报告错
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
报告错误并自动获取错误消息。@JonathonReinhartperror
给出了“没有这样的文件或目录”的提示。但奇怪的是,我重新启动了电脑,现在它可以正常工作了。如果你有任何想法的话,我仍然想知道会发生什么!您可能会检查节点“name”是否位于/dev/shm/下,这是一个类似的问题,答案建议检查O_CREAT和O_RDWR两个标志是否都正确设置。这为我解决了问题(我错过了第一个)