title: RAII and system resource cleanup
body: <p>RAII is a good solution for resource cleanup. However, RAII is based on stack unwinding. If process terminates abnormally, the stack won't be unwinded. It means RAII won't work in this situation. For process life-time's resource, it's nothing to worry about, but for file system life tiem or kernal life time resource, such as file, message queue, semaphore, shared memory, it will be a problem.</p>
  
  <p>How can I cleanup the system(fs and kernal) resource in a reliable way?</p>
  
  <p>Example:
  A shared file will be create by "master" process, and be used by "slave" process. The shared file should be deleted by "master" process in plan. Does it exist a way to do that.</p>
  
  <p>Obvious, the shared file can't be unlink at once after it is created. If that, other processes can't "see" the file.</p>