我尝试将char向量附加到共享内存: shmget()是可以的,但是shmat()返回一个错误。这是我的密码:
...
...
#define TXTSZ 512
---main---
char *address;
int shm_id;
...
if(shm_id = shmget(IPC_PRIVATE, TXTSZ*sizeof(char), IPC_CREAT | 0666) == -1){
perror("Error shmget");
}
...
if((address = (char *)shmat(shm_id, NULL, 0)) == (char *) -1){
perror("Error shmat");
}
...
...发布于 2020-12-11 14:11:30
典型的错误(通常是用open()犯的)。您将shm_id设置为比较的结果,而不是shmget返回的ID。
你需要在作业周围加上括号。
if((shm_id = shmget(IPC_PRIVATE, TXTSZ*sizeof(char), IPC_CREAT | 0666)) == -1){https://stackoverflow.com/questions/65252808
复制相似问题