Switching between cooked and raw modes requires access to the terminal’s configuration data. In Linux, these settings are manipulated at the command prompt by using the stty ccommand. In a C program, you use various functions available in the standard library and defined in the termios.h header file.
Continue reading
Category Archives: Lesson
Cooked or Raw?
When the waitress asks how I like my eggs, I answer, “Cooked.”
O, how we all laugh . . .
The humor here is that it’s assumed you desire your eggs to be cooked and the waitress’s question relates to the fashion by which the eggs are to be cooked: fried, over-easy, sunny-side-up, scrambled, poached, and on and on. But the question of cooked or raw also applies to standard input for a computer terminal.
Continue reading
Getting and Setting the File Position Indicator
As data is read from a file, a file position indicator (which most C references call a “file pointer”) moves sequentially through the file’s data. As a review, three functions are available to adjust this offset:
Continue reading
A Colorful Hexdump
By combining the code page 437 data from last week’s Lesson into my colorful hexdump utility, I’m finally able to wrap up the code and produce a program that outputs a more interesting file dump.
Continue reading
Code Page 437
The one common denominator in the microcomputer era was ASCII. These 128 codes (zero through 127) provided a modicum of consistency for text files shared between the abundant computer platforms from days of yore. But a byte (char) holds 256 values. So what was done about those non-ASCII character codes, 128 through 255?
Continue reading
Dumping the Screen in W-I-D-E Color
Updating the hexdump utility with color is good, but adding wide characters for output is even better. From last week’s Lesson, I’m adding wide character output to generate codes for non-printing ASCII values 0 through 31 and 127.
Continue reading
Dumping the Screen in Color
The hexdump utility is a marvelous tool for grabbing a sneak peek at a file’s innards, especially when debugging code that performs file access. As a text mode tool, however, it could stand to use some colorful character improvement.
Continue reading
Consistently Constant
A new keyword added with the C23 standard is constexpr. It’s a storage class specifier that sets a constant value. Unlike the original C language qualifier, const, storage declared with the constexpr is truly constant and cannot be altered, as was demonstrated in last week’s Lesson.
Continue reading
Constantly Complaining
The C language has an issue with constants. As far as I can tell, three different ways are at your disposal to express a constant: constant expressions, literal constants, and constant types. More variety may be available, which adds to the confusion.
Continue reading
All Those Binary Dates
Only a handful of days of the year have a number format containing only ones and zeros. These “binary dates” are found by examining each day of the year to check for binary digit validity. In last week’s Lesson, I presented code to generate and save each of the year’s 365 dates as a 4-character string. It’s time to check each of them for binary date validity.
Continue reading