Hello,

In other programming languages (this is specific to Linux/Unix systems), in 
the past to ensure security in the even of a program crash, we would do 
something like:

1. Create a temporary file and squirrel away the file handle
2. Unlink the temporary file by name
3. Various functions would write stuff to the file
4. If the programs completes to some successful state, create a hardlink to 
the file handle with the final filename

I'm finding this very difficult to do in Go, as there does not seem to be a 
way to do #4.  And this is a very important consideration for this piece of 
the system.

For example, os.Rename takes filenames as the old/new filename.

I figured looking in that code might reveal something lower level that 
could be used, which lead me to syscal_linuxl.Rename()

That lead me to syscall_linux.RenameAt()

Which led me to zsyscall_linux_amd64.go.

.. at this point I got pretty lost on how to do any of this.  _AT_FDCWD and 
fishing around in what appears to be some pretty low-level internals of 
Go...

Is there some way to achieve this or a way that can ensure these files are 
always removed if the program is kill -9'd, terminates from a panic, etc.

Thanks!

Greg


-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to