svn commit: r229937 - in head/lib: libc/gen libutil
Pawel Jakub Dawidek
pjd at FreeBSD.org
Tue Jan 10 21:43:53 UTC 2012
On Tue, Jan 10, 2012 at 07:53:25PM +0000, Guy Helmer wrote:
> Author: ghelmer
> Date: Tue Jan 10 19:53:25 2012
> New Revision: 229937
> URL: http://svn.freebsd.org/changeset/base/229937
>
> Log:
> Add pidfile_fileno() to obtain the file descriptor for an open
> pidfile.
>
> Modified:
> head/lib/libc/gen/getnetgrent.c
> head/lib/libutil/libutil.h
> head/lib/libutil/pidfile.3
> head/lib/libutil/pidfile.c
[...]
> @@ -92,6 +94,10 @@ to start a child process.
> The
> .Fn pidfile_remove
> function closes and removes a pidfile.
> +.Pp
> +The
> +.Fn pidfile_fileno
> +function returns the file descriptor for the open pid file.
In other places in this manual page we use 'pidfile' as a single word.
> .Sh RETURN VALUES
> The
> .Fn pidfile_open
> @@ -105,15 +111,25 @@ If an error occurs,
> will be set.
> .Pp
> .Rv -std pidfile_write pidfile_close pidfile_remove
> +.Pp
> +The
> +.Fn pidfile_fileno
> +function returns the low-level file descriptor.
> +It returns -1 and sets
I think you should also use .Va or .Li macro for -1.
> +.Va errno
> +if a NULL
> +.Vt pidfh
> +is specified, or if the pidfile is no longer open.
> .Sh EXAMPLES
> The following example shows in which order these functions should be used.
> Note that it is safe to pass
> .Dv NULL
> to
> .Fn pidfile_write ,
> -.Fn pidfile_remove
> -and
> +.Fn pidfile_remove ,
> .Fn pidfile_close
> +and
> +.Fn pidfile_fileno
> functions.
> .Bd -literal
> struct pidfh *pfh;
> @@ -244,6 +260,16 @@ and
> system calls and the
> .Xr flopen 3
> library function.
> +.Pp
> +The
> +.Fn pidfile_fileno
> +function will fail if:
> +.Bl -tag -width Er
> +.It Bq Er EDOOFUS
> +Improper function use.
> +Probably called not from the process which used
> +.Fn pidfile_open .
> +.El
> .Sh SEE ALSO
> .Xr open 2 ,
> .Xr daemon 3 ,
>
> Modified: head/lib/libutil/pidfile.c
> ==============================================================================
> --- head/lib/libutil/pidfile.c Tue Jan 10 18:43:27 2012 (r229936)
> +++ head/lib/libutil/pidfile.c Tue Jan 10 19:53:25 2012 (r229937)
> @@ -266,3 +266,13 @@ pidfile_remove(struct pidfh *pfh)
>
> return (_pidfile_remove(pfh, 1));
> }
> +
> +int
> +pidfile_fileno(struct pidfh *pfh)
> +{
Missing empty line here for function without local variables.
> + if (pfh == NULL || pfh->pf_fd == -1) {
> + errno = EDOOFUS;
> + return (-1);
> + }
> + return (pfh->pf_fd);
> +}
BTW. If you are working on pidfile, it would be nice to move pidfile
structure declaration into pidfile.c. There is no need to expose it.
--
Pawel Jakub Dawidek http://www.wheelsystems.com
FreeBSD committer http://www.FreeBSD.org
Am I Evil? Yes, I Am! http://yomoli.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/svn-src-head/attachments/20120110/b7b7e303/attachment.pgp
More information about the svn-src-head
mailing list