The code doesn't do anything special that other programs do not do for other reasons. Common things like manipulating filehandles, changing environment variables, and forking. There are no daemons under UNIX in the stict sense. It's just a concept, a term used to set expectations for the reader. So to answer your question any user can do it (though, other aspects of your program may require root).