Files
ioccc/1987/korn
Landon Curt Noll c78bda6c0f update tarballs due to recent commits
The commit a1c86c8a7a modified
the navigation bars to include "Original C", so all tarballs
had be update, sorry (tm Canada 🇨🇦).  In particular:

The navigation bar for a winning entry now has a "_Original C_" link
(between the ✅ and the Inventory on the right hand side) so that one
may easily view the original C code that was submitted for IOCCC judging.

In addition, a number of other commits since that time
modified other winning entries.

Ran `make update` to perform the above.
2025-08-18 16:30:59 -07:00
..
2020-12-30 16:57:03 -08:00
2023-07-06 21:49:38 -07:00

To build:

    make all

To use:

    ./korn

Judges' remarks:

The Judges believe that this is the best one line entry ever received. Compile on a UNIX system, or at least one using a C implementation that fakes it. Very few people are able to determine what this program does by visual inspection. I suggest that you stop reading this section right now and see if you are one of the few people who can.

Several points are important to understand this program:

  1. What is the symbol unix and what is its value in the program? Clearly unix is not a function, and since unix is not declared to be a data type (such as int, char, struct foo, enum, ...) what must unix be?

  2. What is the value of the symbol "have"? (hint: the value is NOT 4 characters, or 'h', or a string) Consider the fact that:

    char *x;

defines a pointer to a char (i.e. an address), and that the = assigns things of compatible types. Since:

    x = "have";

is legal C, what type of value is "have"?

  1. Note that the following expressions yield the same value:
    x[3]        *(x+3)    *(3+x)

since addition is commutative. What can be said about this value?

    3[x]

David Korn's /bin/ksh provides us with a greatly improved version of the /bin/sh. The source for v7's /bin/sh greatly inspired this contest.

Author's remarks:

No remarks were provided by the author.