ipc - shm - 字符串会保留在内存中直到系统重新启动吗?
ipc - shm - will string remain in memory until system reboot?
"abc"
字符串已存储到共享内存。
程序已在 return 0;
前完成(退出),但字符串仍存储在内存中。
它会在那里停留多久?
它会保留在那里直到系统重启吗?
能指望它会一直存在吗?
相关代码:
int main() {
int mem_id;
key_t key;
char * string;
key = 01;
int str_len;
str_len = strlen("abc") + 1;
mem_id = shmget(key, str_len, IPC_CREAT | 0666);
string = shmat(mem_id, NULL, 0);
strcpy ( string, "abc" );
return 0;
}
该字符串将保留在那里,直到另一个进程覆盖它或删除共享内存段,或者系统重新启动。
另请参阅 man ipcrm
从命令行删除共享的 SysV 资源。
"abc"
字符串已存储到共享内存。
程序已在 return 0;
前完成(退出),但字符串仍存储在内存中。
它会在那里停留多久?
它会保留在那里直到系统重启吗?
能指望它会一直存在吗?
相关代码:
int main() {
int mem_id;
key_t key;
char * string;
key = 01;
int str_len;
str_len = strlen("abc") + 1;
mem_id = shmget(key, str_len, IPC_CREAT | 0666);
string = shmat(mem_id, NULL, 0);
strcpy ( string, "abc" );
return 0;
}
该字符串将保留在那里,直到另一个进程覆盖它或删除共享内存段,或者系统重新启动。
另请参阅 man ipcrm
从命令行删除共享的 SysV 资源。