C sem_open是否分配内存?

C sem_open是否分配内存?,c,semaphore,C,Semaphore,如果我在程序中使用sem\u open(),然后使用exit()退出,而不使用sem\u close()是否会造成内存泄漏?或者就像关闭文件描述符的open()/close()函数一样?使用体面的操作系统,您不必担心程序退出时资源泄漏。操作系统将回收内存、打开文件等。只有文件或共享对象标识符等持久对象在程序结束后仍然有效 内存(或其他资源)泄漏是一个问题,因为它们是非谨慎编程的暗示,在现实世界中,对于长时间运行的程序来说是一个问题,或者如果它们发生在循环中的话。但通常认为在致命错误退出时泄漏资源

如果我在程序中使用
sem\u open()
,然后使用
exit()
退出,而不使用
sem\u close()
是否会造成内存泄漏?或者就像关闭文件描述符的
open()/close()
函数一样?

使用体面的操作系统,您不必担心程序退出时资源泄漏。操作系统将回收内存、打开文件等。只有文件或共享对象标识符等持久对象在程序结束后仍然有效


内存(或其他资源)泄漏是一个问题,因为它们是非谨慎编程的暗示,在现实世界中,对于长时间运行的程序来说是一个问题,或者如果它们发生在循环中的话。但通常认为在致命错误退出时泄漏资源是无害的。

使用
sem\u open
创建的信号量是当进程退出时操作系统将释放的操作系统资源。好的,谢谢,如果我不使用sem\u close()退出它不会造成内存泄漏大多数主流操作系统都会在进程退出后清理内存泄漏,只有当内存泄漏开始堆积并且程序预计会运行更长时间时,内存泄漏才会成为问题。完成后总是自己清理是一个好习惯。特别是在长时间运行的程序中,当您可能不需要资源时,程序的整个运行时都会被清除。@Someprogrammerdude只有在某个时候对其调用
sem\u unlink()
。命名信号量是持久对象。它们将在程序退出时关闭,但不一定被删除。