tech-net archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: scanning ...wiconfig: ioctl: No such file or directory
On Tue June 23 2009 11:15:24 David Laight wrote:
> On Sat, Jun 20, 2009 at 10:56:17AM +0100, Iain Hibbert wrote:
> > Good catch, though imo its unclean to use errno in this way as it only
> > indicates what error occurred, not the presence of an error. Although the
> > change is bigger, is it better to do
>
> ...
>
> > while (ioctl(s, SIOCGWAVELAN, &ifr) == -1) {
> > retries--;
> > ! if (retries < 0) {
> > ! set_if_flags(s, iface, flags);
> > ! close(s);
> > ! err(1, "ioctl");
> > ! }
> >
> > ! printf(".");
> > ! fflush(stdout);
> > ! sleep(1);
> > }
>
> That is still (ate least IMHO) buggy sine the err() call needs to
> be made before the set_if_flags() and close() since either could,
> at least potentially, change errno.
>
> I've also just had a wicked thought that a signal handler might
> also run and change errno!
> I wonder how that affects the checking of errno for some libc functions!
The errno that is set after the call to printf is from malloc calling readlink
on /etc/malloc.conf. ENOENT is exactly right.
Sverre
Home |
Main Index |
Thread Index |
Old Index