Project

General

Profile

Actions

Bug #756

closed

select(2): a minor man patch and a question

Added by nthery over 17 years ago. Updated about 17 years ago.

Status:
Closed
Priority:
Low
Assignee:
-
Category:
-
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:

Description

Hello,

DragonFly BSD has <sys/select.h> but "man select" specifies an older
synopsis. Here is a
patch to change this.

Index: src/lib/libc/sys/select.2 ===================================================================
--- src.orig/lib/libc/sys/select.2 2006-05-26 21:39:37.000000000 0200
++ src/lib/libc/sys/select.2 2007-08-01 09:03:54.000000000 0200
@ -42,9 +42,7 @
.Sh LIBRARY
.Lb libc
.Sh SYNOPSIS
.In sys/types.h
.In sys/time.h
-.In unistd.h
.In sys/select.h
.Ft int
.Fn select "int nfds" "fd_set *readfds" "fd_set *writefds" "fd_set
*exceptfds" "struct timeval *timeout"
.Fn FD_SET fd &fdset

On a related note, a warning is issued when compiling a program that
uses FD_ZERO() because
bzero() is used under the hood and its prototype is not found.

I'm not sure what is the Right Thing to do:

1) Leave the warning. It is up to client code to include <string.h>
first (but this is not
specified in http://www.opengroup.org/onlinepubs/009695399/functions/select.html)

2) #include <string.h> in <sys/select.h> when building userland code.

3) copy bzero() prototype into <sys/select.h>

Thanks in advance,
Nicolas

Actions #1

Updated by joerg over 17 years ago

It must use memset and it most likely should declare a prototype for it.

Joerg

Actions #2

Updated by swildner over 17 years ago

Thanks, committed.

Sascha

Actions #3

Updated by joerg over 17 years ago

It should be noted that some DragonFly versions did not allow
including sys/select.h. Including unistd.h is relative portable and
works on most systems, sys/select.h is not present everywhere.

Joerg

Actions

Also available in: Atom PDF