Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼


November 1997/C/C++Sources

Best of Reader Requests: Part II

There's an easier way to find C/C++ resources on the Web than using search engines read on.

Handling the many reader requests for Internet sources is always a discovery process for me. For a moment, compare the Internet with your average small-town library. The library has all resources cataloged, numbered, and sorted. Dewey decimal number 671.23 corresponds to Early American History and you'll find all appropriate works on the same shelf. You know you're in the right place because the online card catalog is authoritative.

Now imagine your public library indexed like the WWW. No nice index by author, title, or subject. Just odd-looking fragments like pages torn out of a book: the results of a free-text search engine like AltaVista or Infoseek or any others. Now picture the books ordered by some system unrelated to contents, say by publisher. Could you ever locate a book by Ernest Hemingway in such a system?

Like it or not, that's the state of the net. Its no wonder that people can't find simple things they need, like a B+Tree library, some Winsock examples, or the C++ FAQ. Of course, I've replied to each request by email prior to publication. But if you've got a better link or tool to offer than what I've come up with, then send on a brief email to them. Read on; odds are you'll find something you've been looking for or maybe gave up looking for. At this time, no more reader requests will be accepted.

[email protected] writes:

[I would like to see] More about basic and advanced use of pointers.

Victor writes:





[email protected] writes:

[I would like to see] Design pattern source code.

Victor writes:

Try the following sites:


Design Patterns Home Page (Gang of Four)


Design Patterns Mailing Lists (by thread)


Unofficial Design Patterns FAQ


Bibliography of Software Design Patterns


Experiences with Design Patterns

Readers, if you have any favorite Design Pattern links, please write me.

[email protected] writes:

hello, sorry I don't speak english. I need information of programs and kit about control voltage of light, port LPT or COM, thank you...

Victor writes:

With BSR X-10 devices, you can attach a controller to your computer's COM port to remotely control appliances, lights (including dimmers), and much more. See


(in Pascal)

Obviously there are other files in the x_10 directory as well. See also, the home of X-10:


and also the X-10 FAQ:


and of course the comp.home.automation newsgroup!

Tom Crowe <[email protected]> writes:

Just finished the article in CUJ where you helped so many people find the code that they were looking for and I was wondering if you could take a minute to help me. I am looking for B tree code for C. I have done many searches with many engines on the web and have found many code examples but they have all been in C++. If you could help me out I would really greatly appreciate it.

Thanks in advance,

Victor writes:

Once again, the List of Free Databases comes to the rescue. Here's the list of B+Tree ISAM engines you should consider:

The Berkeley Database Package (DB) is C library that provides database support for applications, including client/server applications. It includes B+tree, Extended Linear Hashing, and fixed/variable-length record access methods; transactions; locking; logging; shared memory caching; and database recovery. The source code is freely available, and may be freely redistributed.


Marcus J. Ranum's "Poor Man's Btree Library" maintains a simple balanced btree index. Nothing more is provided than routines to insert, set, find (specific, next, and previous), and delete keys. Each key, however, has a spare long value that can be used to contain an offset to a data file. A library to handle fixed-length records based on these pointers should be trivial. Originally posted to comp.misc.sources (Vol. 3, No. 49), it can now be found via LEO (a permanent WWW repository for source code originally appearing in comp.misc.sources and other newsgroups). The source is gzipped, tarred, and shar archived.


There is also a B+Tree implementation available from Ranum. The B+Tree library includes source code for a variable-length key / variable page size. It also includes source for a variety of test programs, a semi-useable record manager, and a dbm-lookalike library built on top of the record manager and b+tree.


cbase is a complete multiuser C database file management library, providing indexed and sequential access on multiple keys. cbase uses B+Trees and supports multiple users with read-only locking. Custom indexing beyond that performed automatically by cbase can also be performed. cbase features a layered architecture of four individual libraries. cbase includes full ANSI C source and supports MS-DOS and Unix.


This and more can be found in


Wim De Vriendt <[email protected]> writes:

Please can anybody mail me the Autoduck for win95/NT that make's HTML file from my code? I use already AUTODUCK.

Victor writes:

Autoduck extracts specially tagged comment blocks from programming source files and generates rich text (RTF) files containing the contents of those comment blocks. Autoduck has traditionally been used to document programming APIs.

Placing API documentation within the source files helps programmers disseminate information about a developing codebase. Autoduck can generate online Help files containing full hypertext coding with links and keyword lists. Typically, Autoduck is integrated into the build process, so a new Help database can be automatically generated with each build.

The new 2.10 version includes an HTML format file (HTML.FMT). To generate HTML from your tagged source files, just reference the format file HTML.FMT and specify doc type HTML, as follows:

Autoduck /f html.fmt /r html /o
output.htm file1.cpp file2.cpp file3.cpp

For more information, see


For a "hot" download, try


[email protected] writes:

I have purchased a neural network simulator. It is running well on gnu compiler in Linux o/s. I want desparately gnu compiler source code so that I can load on HP-UX platform.

Victor writes:



<[email protected]> writes:

This is not a question, but I thought perhaps you might like to let your users know of a free service for OS developers. It's known as the Os Developers Information Network (ODIN). And although it's currently under construction and I can't give you a URL, I'd be happy to handle any mail your readers might like to write and forward them a URL when it's completely up.

We will be offering information from how to write bootloaders, to full 32-bit coding at the assembly/C/C++ level. We also have documents and example source that shows you how to use DJGPP (GCC for DOS) as a cross compiler for generating your very own 32-bit kernel.

We hope to have the service up soon.

[email protected] (Samchuck, Andrew G.) writes:

Just read your recent column, and thought you might be able to help me in my search for a copy of the complete ANSI X3J11 C Standard draft document. Can you point me to a good web page(s)?

Victor writes:

From my reading of the comp.languages.c FAQ and from my own research, I believe the following to be true:

ANSI recovers its costs by selling printed copies of its standards, an archaic but effective way of earning money from the "users" of its standards. If you want official documents, you can buy them at


What you want is actually ISO 9899 and you should expect to pay $130 for it.

The published Standard includes a "Rationale," which explains many of its decisions, and discusses a number of subtle points. (The Rationale is "not part of ANSI Standard X3.159-1989, but is included for information only.") The Rationale is available in PostScript (among other) formats.


There is a book, which the FAQ somewhat deprecates, called Annotated ANSI C Standard, which lists for about $40 and is available from http://www.amazon.com. I have recently purchased a copy from Amazon for research purposes, but have not read through it enough other than to confirm that it does contain a copy of the Standard. According to the FAQ, this book "contains all but a few pages of ISO 9899." Look for the book under:

Herbert Schildt. The Annotated ANSI C Standard : American National Standard for Programming Langages-C : Ansi/Iso 9899-1990 (McGraw-Hill 1993). ISBN: 0078819520

Here's a warning from Bob Nelson ([email protected]):

"This book is precisely 50% excellent. The rating would (and should) be 10 (best). However, there are the unfortunate annotations from Herb Schildt. These 'helpful notes' are brimming with errors, half-truths, untruths, and sheer fantasy. McGraw-Hill should provide a large black Magic Marker © as a value-added supplement to this book. The buyer can then use it to obscure all of the text on the odd-numbered pages." o

Victor R. Volkman received a BS in Computer Science from Michigan Technological University. He has been a frequent contributor to the C/C++ Users Journal since 1987. He is the author of the book Windows Programming with Shareware Tools. He can be reached at http://www.HAL9K.com/home.htm, or email to [email protected]

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.