类似于:在Linux上删除所有共享内存和信号量,但我希望用C语言实现,而不是使用一些脚本。
我的具体问题:在Linux和Mac中,当我调试一个程序并在进程中途终止时,共享资源(内存+信号量)不会被释放。我的程序做了一些客户端服务器的事情,其中服务器是第一个获取共享资源的进程。因此,在没有分离的情况下终止后,重新启动程序时,它会认为自己是客户端,而没有服务器(因为资源已经被创建而未被释放)。
目前,我正在使用Qt来管理共享资源,但是Qt似乎没有处理这种情况的方法(create返回的错误代码是资源已经被创建)。因此,我在寻找更有针对性的OS实现方式。注意:Windows没有这个问题,因为共享资源会在自动终止时被释放。
我的具体问题:在Linux和Mac中,当我调试一个程序并在进程中途终止时,共享资源(内存+信号量)不会被释放。我的程序做了一些客户端服务器的事情,其中服务器是第一个获取共享资源的进程。因此,在没有分离的情况下终止后,重新启动程序时,它会认为自己是客户端,而没有服务器(因为资源已经被创建而未被释放)。
目前,我正在使用Qt来管理共享资源,但是Qt似乎没有处理这种情况的方法(create返回的错误代码是资源已经被创建)。因此,我在寻找更有针对性的OS实现方式。注意:Windows没有这个问题,因为共享资源会在自动终止时被释放。