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 资源。