c - 在 Linux 中终止后释放内存

标签 c linux

我正在用 C 编写一个程序,它使用了一些进程、信号量和映射内存。当我映射内存然后程序在执行过程中失败,无法到达释放内存的阶段,程序卡住了,我不得不杀死它(Ctrl+C)。

问题是当我修复错误并再次运行程序时 - 它调用共享内存错误或信号量错误并且程序终止。我只能通过重新启动整个操作系统来解决这个问题。

有没有另一种方法,如何在意外错误后“释放”已分配的内存?

仅供引用:ipcs 不显示分配的内存或使用的信号量。

编辑:我只需要标记一个“正确”答案,但我要感谢大家提出的想法。结果是出现问题后,删除/dev/shm文件夹中除pulse...以外的所有内容即可解决。

最佳答案

POSIX 共享内存没有特定的命令行工具。但它通常映射到/dev/shm 树中,您可以在其中使用经典文件操作工具管理段。

关于c - 在 Linux 中终止后释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23416719/

相关文章:

c - 如何在 MPI 中按顺序打印日志

c - 网络摄像头应用程序中的 opencv 错误

linux - 如何在调试(-x)时显示Shell(/bin/sh)脚本中的行号?

linux - Shell 变量扩展 - 使用 env 调用实用程序时的间接寻址

C - 获取整数数组的特定内容并将它们放入另一个数组中

c++ - 支持 CSS3 的 C/C++ CSS 解析器?

regex - awk 文件中的多个单词正则表达式匹配

linux - 如何列出某些提交之间的提交消息?

c - Fork() 和父/子进程

linux - 如何找到有关我的 CPU 并行架构的信息?