Re: select() problem/feature

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Nikola wrote:

> i am writing small daemon.....and when i was seeing the end ......that 
> was just the beginning
> of my problems.
> 
> General idea was to monitor list of files that was given on start.

> if I do
> #echo "some new line" >> test1.txt
> 
> i would see on my screen that select figured it out and i am having new 
> data for processing and it
> would print it out.

select() is of no use here; files are always "ready" for I/O. select()
is intended for use on descriptors where I/O calls may block
indefinitely: pipes, sockets, terminals and other "slow" character
devices.

You can either poll the file at intervals (like "tail -f ..." does),
or use the linux-specific "dnotify" ioctl()s (see the file
Documentation/dnotify.txt in the kernel source tree for details).

> but when i uncomment last fprintf my while and select goes 
> ballistic.....it prints  numbers forever...not
> blocking......

None of the syscalls in your code will ever block; your program will
be running continuously, using up to 100% CPU. Uncommenting the
fprintf() call simply makes this obvious; it isn't changing anything.

-- 
Glynn Clements <glynn@xxxxxxxxxxxxxxxxxx>
-
: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Assembler]     [Git]     [Kernel List]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [C Programming]     [Yosemite Campsites]     [Yosemite News]     [GCC Help]

  Powered by Linux