[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-hackers
Subject:    Re: Is it considered to be ok to not check the return code of close(2) in base?
From:       Mark Millard <markmi () dsl-only ! net>
Date:       2017-12-31 22:11:36
Message-ID: 79FFA3EB-5994-4B7B-BE35-F1AB9D4AE3CD () dsl-only ! net
[Download RAW message or body]

Poul-Henning Kamp phk at phk.freebsd.dk wrote on
Sat Dec 30 20:35:35 UTC 2017 :

> But if you just close a file, and you're 100% sure that will work,
> you should write it as:
> 
> 	assert(close(fd) == 0);
> 
> To tell the rest of us about your assumption and your confidence in it.

Quoting the FreeBSD assert man page:

QUOTE
     The assert() macro	may be removed at compile time by defining NDEBUG as a
     macro (e.g., by using the cc(1) option -DNDEBUG).
ENDQUOTE

This makes required-actions inside asserts dangerous,
at least without guarantees that NDEBUG will be
undefined. Trying to guarantee that NDEBUG will be
undefined would generally be a bad idea.

So,

assert(close(fd) == 0);

is a bad coding practice in my view.

===
Mark Millard
markmi at dsl-only.net

_______________________________________________
freebsd-hackers@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic