four-argument version of select

John R. Comeau comeaujr at
Sun Jun 11 16:39:20 CDT 2000

I'm trying to use the four-argument select function.  I'm having
trouble getting the timeout feature to work as I expected.  For
instance, I have the following code to read from a FIFO (named pipe):

	open FIFO, $fifo	or die "can't read $fifo: $!";
	my $rin = '';
	vec ($rin, fileno (FIFO), 1) = 1;
	my $nfound = select ($rin, undef, undef, 1);

I expected that it will wait for one second to see if the FIFO had
data available to read and then timeout and continue execution.  But
it never times out.

Instead of timing out, I see it wait at the select call until data is
written to the fifo.  For those of you with accounts on apsadmin
(SDPM's) computer, I have the cases I've tried in the following files:

prw-rw-rw-   1 comeau     users            0 Jun 11 14:11 /home/comeau/fifo
-rw-r--r--   1 comeau     users            6 Jun 10 17:57 /home/comeau/hello
-rwxr-xr-x   1 comeau     users          465 Jun 10 18:06 /home/comeau/
-rwxr-xr-x   1 comeau     users          465 Jun 10 18:06 /home/comeau/
-rwxr-xr-x   1 comeau     users           52 Jun 11 14:14 /home/comeau/

What I did to test these out is ran (or in one
shell, and in another shell, ran

	cat < hello > fifo

I find that waits for data to be written to fifo before
continuing.  I gave world write permissions to the file
/home/comeau/fifo, so everyone should be able to duplicate my

I've been unsuccessful with the FIFO with the following versions of

	version 5.005_03 built for PA-RISC1.1
	version 5.005_02 built for sun4-solaris
	v5.6.0 built for sun4-solaris

However I did get the simple case to timeout as

	select undef, undef, undef, 4.75;

This is equivalent to a sleep for 4.75 seconds and is done in

John Comeau (john.comeau at 858-713-3593 (W)
Er hatte sich entschieden, ihre schmutzige Wasche in aller Offentlichkeit zu waschen
He had decided to wash their dirty linen in public

The posting address is: san-diego-pm-list at

List requests should be sent to: majordomo at

If you ever want to remove yourself from this mailing list,
you can send mail to <majordomo at> with the following
command in the body of your email message:

    unsubscribe san-diego-pm-list

If you ever need to get in contact with the owner of the list,
(if you have trouble unsubscribing, or have questions about the
list itself) send email to <owner-san-diego-pm-list at> .
This is the general rule for most mailing lists when you need
to contact a human.

More information about the San-Diego-pm mailing list