User Tools

Site Tools


c

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
c [2015/12/31 09:35]
admin [Single return point]
c [2020/10/17 09:05]
114.119.151.1 ↷ Links adapted because of a move operation
Line 1: Line 1:
-=====Writing C=====+====== Decent C======
 I've been writing c for over 30 years, but it can still be a nightmare - the problems are well documented elsewhere. The discipline of writing device drivers for Linux/Solaris/HP-UX/AIX etc etc and crypto code for RSA (thanks, Michael for the excellent code-reviews - I learned so much) have led to a few points that help make code clearer, easier to maintain and less likely to contain memory leaks and other faults. I've been writing c for over 30 years, but it can still be a nightmare - the problems are well documented elsewhere. The discipline of writing device drivers for Linux/Solaris/HP-UX/AIX etc etc and crypto code for RSA (thanks, Michael for the excellent code-reviews - I learned so much) have led to a few points that help make code clearer, easier to maintain and less likely to contain memory leaks and other faults.
 ====Single return point==== ====Single return point====
Line 79: Line 79:
 ====exit values etc==== ====exit values etc====
 Unless you've got a really good excuse, the program should exit(0) on success and non-zero on failure (note that exit code can only be up to 8-bits long). Unless you've got a really good excuse, the program should exit(0) on success and non-zero on failure (note that exit code can only be up to 8-bits long).
-As with [[DecentBash]], the program should send error messages (prefixed with the program name) to stderr, output to stdout. It should recognise -h (no matter what) and possibly --help and print help to stdout (and return 0!). -v and --verbose are also pretty standard.+As with [[unixscripts:3-decentbash]], the program should send error messages (prefixed with the program name) to stderr, output to stdout. It should recognise -h (no matter what) and possibly --help and print help to stdout (and return 0!). -v and --verbose are also pretty standard.
  
 In fact, why not use argp(3) to make option processing easy? In fact, why not use argp(3) to make option processing easy?
c.txt · Last modified: 2020/10/17 09:05 by 114.119.151.1