【发布时间】:2021-10-31 01:18:29
【问题描述】:
我正在尝试创建一个在 main 方法(多线程应用程序)中具有无限循环的 c 程序。我们在两个应用程序之间使用 pthreads 和 POSIX 共享内存。如果我使用命令行 (CTL+C) 退出其中一个程序,那么我想运行一种清理方法来清理所有分配的内存并删除 POSIX 共享内存映射。
int main () {
for (;;)
{
}
destroy_shared_object(shm, MEM_MAP_SIZE);
exit(EXIT_SUCCESS);
return 0;
}
现在这就是我上面的内容,但是当我退出程序时,我认为它不会删除共享内存映射并进行清理。任何帮助将不胜感激!
【问题讨论】:
-
您可以使用
signal()捕获CTRL+C。
标签: c posix shared-memory