ipc - shm - 将字符串保留在内存中,直到系统重启?

时间:2017-07-15 05:48:28

标签: c ipc shared-memory

"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;
}

1 个答案:

答案 0 :(得分:0)

字符串将保留在那里,直到另一个进程覆盖它或删除共享内存段,或者系统重新启动。

另请参阅man ipcrm以从命令行中删除共享的SysV资源。