This is because this code is autogenerated from an awk program.
The awk (1) program, shown in Figure 2.12, creates a C program that prints the meaning of each pathconf and sysconf character.
An important part of the program is this.
while (getline <"sysconf.sym" > 0) { printf("#ifdef %s\n", $1) printf("\tprintf(\"%s defined to be %%d\\n\", %s+0);\n", $1, $1) printf("#else\n") printf("\tprintf(\"no symbol for %s\\n\");\n", $1) printf("#endif\n") printf("#ifdef %s\n", $2) printf("\tpr_sysconf(\"%s =\", %s);\n", $1, $2) printf("#else\n") printf("\tprintf(\"no symbol for %s\\n\");\n", $2) printf("#endif\n") }
Since he does not know what a symbol may contain, he probably defends it, although the book does not explain what its protection is.
Schwern
source share