I am not able to understand how int (*ap3)[900000] = malloc(sizeof *ap3); is nicer than int *a = malloc(900000 * sizeof *a); Notice that, in the former case, the array elements must be accessed as (*ap3)[i] whereas in…
This is equivalent to while (1) { calc(x++); } which is an infinite loop, since the expression x <= max is always true
I am reminded of Fortran 77. In Fortran 77, the first character of a record to be printed out determined vertical spacing as follows: Blank One line 0 Two lines 1 To first line of next page + No advance
There were no bitwise operators in the Atari BASIC, and numbers in the tokenized program were always stored as floating-point numbers in BCD (Binary Coded Decimal) format.
I wouldn't use awk for simple things such as cat sales.csv | awk -F',' '{print $1}' but I'd prefer cut -d, -f1 sales.csv
The awk command cat sales.csv | awk -F',' '{print $1}' | sort | uniq can even be further simplified to cut -d, -f1 sales.csv | sort -u
True. I had thought low and high could be unsigned originally, in which case casting to unsigned is redundant, then the sum would produce a carry.
The proposed solution for C and C++ mid = ((unsigned int)low + (unsigned int)high)) >> 1; in the blog may still be wrong if the sum ((unsigned)low + (unsigned)high)) produces a carry.
A modern compiler would warn about the condition (ii >= 0) being always true. One correct way would be for (size_t i = len; i > 0; --i) { // use i-1 as the array index } or, size_t i = len while (i-- > 0) { // use i as…
This can be more shortened to ls -1 | uniq -u -w4 using GNU uniq, for these special filenames. Unfortunately, Posix does not define -w option for uniq.
"C99 provides a macro SIZE_MAX with the maximum value possible in size_t. C89 doesn’t have it, although you can obtain the value by casting (size_t)-1. This assumes a twos’ complement architecture,..." The architecture…
That's the expected behaviour. Quoting from spec: If no expression is present, -print shall be used as the expression. Otherwise, if the given expression does not contain any of the primaries -exec, -ok, or -print, the…
Neither -b nor -B option is defined in the POSIX ls utility. The -b option is a GNU extension to print C-style escapes for nongraphic characters, and it is useful for this case. The -B option is also GNU extension not…
I'd use the find command with the -printf option (GNU find has this option but POSIX find doesn't define it) instead of ls. For instance: find /path/to/dir -type f -printf "%s\n" | awk ' { s += $0 } END { print s "…
I am not able to understand how int (*ap3)[900000] = malloc(sizeof *ap3); is nicer than int *a = malloc(900000 * sizeof *a); Notice that, in the former case, the array elements must be accessed as (*ap3)[i] whereas in…
This is equivalent to while (1) { calc(x++); } which is an infinite loop, since the expression x <= max is always true
I am reminded of Fortran 77. In Fortran 77, the first character of a record to be printed out determined vertical spacing as follows: Blank One line 0 Two lines 1 To first line of next page + No advance
There were no bitwise operators in the Atari BASIC, and numbers in the tokenized program were always stored as floating-point numbers in BCD (Binary Coded Decimal) format.
I wouldn't use awk for simple things such as cat sales.csv | awk -F',' '{print $1}' but I'd prefer cut -d, -f1 sales.csv
The awk command cat sales.csv | awk -F',' '{print $1}' | sort | uniq can even be further simplified to cut -d, -f1 sales.csv | sort -u
True. I had thought low and high could be unsigned originally, in which case casting to unsigned is redundant, then the sum would produce a carry.
The proposed solution for C and C++ mid = ((unsigned int)low + (unsigned int)high)) >> 1; in the blog may still be wrong if the sum ((unsigned)low + (unsigned)high)) produces a carry.
A modern compiler would warn about the condition (ii >= 0) being always true. One correct way would be for (size_t i = len; i > 0; --i) { // use i-1 as the array index } or, size_t i = len while (i-- > 0) { // use i as…
This can be more shortened to ls -1 | uniq -u -w4 using GNU uniq, for these special filenames. Unfortunately, Posix does not define -w option for uniq.
"C99 provides a macro SIZE_MAX with the maximum value possible in size_t. C89 doesn’t have it, although you can obtain the value by casting (size_t)-1. This assumes a twos’ complement architecture,..." The architecture…
That's the expected behaviour. Quoting from spec: If no expression is present, -print shall be used as the expression. Otherwise, if the given expression does not contain any of the primaries -exec, -ok, or -print, the…
Neither -b nor -B option is defined in the POSIX ls utility. The -b option is a GNU extension to print C-style escapes for nongraphic characters, and it is useful for this case. The -B option is also GNU extension not…
I'd use the find command with the -printf option (GNU find has this option but POSIX find doesn't define it) instead of ls. For instance: find /path/to/dir -type f -printf "%s\n" | awk ' { s += $0 } END { print s "…