C is not very good as a first programming language. After all, you can think about C as a "portable assembly language"
but without assembler transparency and closeness to machine architecture. For more info see C
Webliography. But it is better then some alternatives that are used in Universities all over the world ;-)

In an ideal world there are two ways (and two major schools of teaching) to master programming which can be called "bottom-up"
and "top-down" approaches:

The first school recommends that a student should first learn a simple assembly language. In old time it was IBM 360 assembler (a classic assembler).
Now it is Intel assembler. IBM System 360 assembler is much simpler then Intel assembly language. The latter is pretty arcane, but still can be used due to a large number of
good books and universal availability. After a student understands assembly language and do some programming in it, he/she
can "go up" to a higher-level language like Pascal and only after that learn C. Actually understanding assembler
language is equal to understanding of debugger and that gives students who started with it tremendous advantage in studying
other compiled languages (not so much interpreted languages)

The second school recommends to start with an interpreted scripting language with a good interactive debugger (Basic, JavaScript, Perl 4, Python, etc) as the
first language. Good interactive debugger is a tremendous asset for beginners and it really clarify many concepts that
otherwise are difficult to understand. From this language student can "go down" to C or Pascal and then, eventually, assembler.

Both schools are valid approaches, but the university reality is different and actually if your first language is C you
need to thank God that it's not C++ or Java ;-). Those days that rarely happens and probably you will be fed Java diet no
matter what. Java stands between compiled languages and scripting languages and the course that is taught typically is burdened with overemphasis on OO.
Which is probably the most efficient way to kill any interest in programming ;-). In other words it
is as far
from ideal first language as one can get, but nobody cares about student interests. Generally in teaching programming languages
like in IT in general fashion rules and each generation of CS students became an unsuspecting victims of the current IT fashion
trend. And what makes money
in business typically is stupidly pushed as the first language. As a result more students hate programming
that it would be if they teach something simpler and without excessive zeal toward OO from the very beginning. Teaching OO in
the first programming language
makes the course even more obscure then it should be even with Java as the first language.

Still not everything is lost and students have a chance to learn C by themselves or taking course is some community college
(just do not tell anybody about it, if you attend a prestigious university ;-). That can dramatically improve your chances in
understanding Java and even might make Java course enjoyable. And C is simply a must for enthusiasts who love programming as it is lingua franka of Unix.

As a language C exists for more that 40 years, so there are some really good books on the market. For an introductory book
on C (especially high-school level book) I recommend a book that use flowcharts and figures extensively (C
by Example) and has decent typographical quality. Again C by Example is a pretty good book.
Wrox press C book by Ivor Horton (now available from Apress) also is also not bad. Please be aware of the recently ratified
new C standard - C9X. Only books published after 2000 cover this standard,
but that does not matter much for introductory books.

Books with a compiler on CD used to be a nice way to get a decent compiler if you do not have any and use Windows. Now
Microsoft provides
Visual C++ Express for free which is a very nice, professional package. Or pay can pay for Visual Studio standard edition
(that contains a set of very decent compilers suitable for beginners). Please note that if you waist so much money for
university credits on courses taught by clueless Java-loving complexity junkies (which is probably 33% of university first
programming teachers belong ;-)s or OO fundamentalists (another 33% of university first programming course instructors ;-) buying your own version
of Visual Studio is a minor expense. The real danger is that you might waist all money spend on those credits. So getting additional
help in a form on DVD-based course, better compiler/IDE is just common sense. Insurance for your investment so to speak. You need
all the help you can get. BTW using University tutors is a must as it gives you a (supposedly knowledgeable ;-) person to
speak with. And just ability to speak to other person and explain you problems sometimes solve those problems. "Lone
wolfs" are rarely successful in programming. The main danger for you is that with insufficient
help at the end you will really hate programming and want ot do nothing with it in the future. That means
that all (OK 90% ;-) of your money and time were wasted.

In Linux gcc is free and more or less OK, but it should be used with
IDE (such as Komodo) with integrated debugger
( I repeat with integrated debugger). Komodo editor is free and should be used if you are
unable to buy a full version. Linux is perfect if you are tight with money and are using self-study book. Moreover working in Linux environment exposes you to the beauty of Unix and as such
might help to prevent development of the "hate of
programming" disease that I already talked about. Disease caused by over complexity of environment in which you feel
like a hero of a Kafka novel: typical feeling of students in Windows environment studying complex language like Java in the first
course.

There are also multiple free compilers but please be aware that using compiler different from recommended in you textbook
increase the difficulties your experience in the course. They are quite OK, or even preferable, for self-study. The list
below in in no way exhausting:

In some old booksfrom Sams and Wrox press have Visual C++ 6 teaching edition (included on CD). It's
an excellent C compiler for beginners with a lot of nice features including good editor with syntax highlighting and a decent
built-in debugger. As books are old you can get them for peanuts. Don't be frustrated that you get C++ compiler instead
of C compiler you actually wanted. It will work as C compiler for files with extension .c.

The simplest way to start learning programming in C is not to type examples from scratch, but cut and paste a suitable
example from the book and then gradually modify it until it will perform what you want to accomplish. That
means that book without a downloadable examples (or examples on CD) is a very bad choice.
As diagnostic in C compilers is pretty bad you should never try to type examples for which you can find a suitable prototype.

A book without a downloadable examples (or examples of CD) is a very bad choice. It's much better
to start with an example and modify it for your needs then to write a program from scratch

I would like to stress it again: never ever try to type your first C programs ;-). You will be very disappointed by the
quality of C diagnostics. Beginner should start with working example that is similar to what he needs and gradually modify
it. Again you need to understand that diagnostics is really horrible and I am not joking
or exaggerating the situation here. If an example you can and
paste runs OK before your changes, than each time you make changes you know where you can introduce an error and thus you are
in much better position to accomplish a task without unnecessary frustration. Please remember that programming is not about
writing program, it's about modifying existing programs ;-). Using prototype you will be able to compile and execute
modified program probably in half of the time and with far less problems. If you use VC++ 5.0 or better than after
opening existing C-file, the project will be created for you automatically.

Using examples from the book has another implicit advantage: you will copy the author style in your programs and thus
be introduced to a more or less consistent style of programming. In good books each example starts with a comment line that
describes it. Also it uses some reasonable naming conversion for variables and provides comments in the body.

In many respects C is an assembly level language with similar traps and pitfalls. Please read
C Traps and Pitfalls
the only book the honestly discuss the problems with the language. It might be better to buy it as a second book than two
very similar introductory level books on the subject, but you should read it only after the first half or the course is
over. Before that is more confuses then enlightens.

Again CD or downloadable code for examples is a must (Wrox Press,
O'Reilly and other mainstream publishers has freely downloadable code for all books), e-text of the book is desirable --
in this case you can include your notes into the text, search for words and phrases, etc. But you can survive without
e-text and making notes is actually an important part of learning process and it should not be made too easy :-). The key
is the quality of the book: there is a big difference in results when you study C from a good book then when you use average
or, God forbid, bad book.

Do not believe that flowcharts are obsolete -- for beginners they are tremendously important and teachers/books that
ignore them put students in a very serious disadvantage. From my teaching experience I firmly believe that a beginner
book based on flowcharts has huge advantage over any other approach.

Illustrations are extremely important too. Book without illustrations usually is definitely less clear and hostile to
the student that book with decent illustration in almost any area of C (especially pointers). For an example of decent illustrations
see Chapter
about pointers from
Practical C Programming
(Nutshell Handbook) that is available online. Again, C by Example is a nicely illustrated
book.

As for intermediate books I strongly recommend K&R book. This is a
classic and you can always benefit from
reading a book that is part of the history of programming, even if some ideas are no longer relevant.

Beware of OO propaganda-based mixed C/C++ books. C is an interesting enough and complex enough language to study
separately and only then move to C++, if at all . C++ is an extensible language and this extensibility presents several
unobvious for beginners dangers in complex programming tasks. IMHO the value of OO outside visual interfaces is questionable.
And even in this narrow domain in many cases one will be much better served by combination of
Tcl/Tk+C or Python and C++ and other pair of scripting language and a compiled language.

Debugging is really difficult in C but it's even more difficult in C++. I strongly recommend using two displays (what
is called extended desktop in Windows) for debugging (for laptop that often means that you need a docking station
to connect them; Dell laptops such as E6320 has nice docking station that allow you connect two monitors).

Be skeptical. Suggestions above should be critically evaluated. Select carefully. Its amazing how much simpler
is to learn C using really great books than to do the same using average books... Do not consider yourself to be stupid
if you do not understand something on the lecture or from the book. It might be that the problem is with the book or instructor
not you :-). That's why having several books in addition to the used in the course of you main book for self-study is important.
With the current prices for used books it is also very affordable.

YouTube is also a great resource and some lectures and tutorials are worth watching.

For obvious reasons I prefer books that have e-text available. There are several of them, but selection varies
from one country to another. See my list of open books below. For example Teach Yourself C in 24
Hours (24 hours actually means 24 one hour lectures; amount of work you need to put to master the material
can vary greatly) is pretty decent, written in a nice style open book.

If you took a course in HTML before your C class you might benefit putting all you examples and lecture notes in a simple Web
site. This is a great way to organize information and it really helps to study the language (and improve your understanding of HTML
as well). FrontPage is a great tool for this and free version (called
Microsoft
SharePoint Designer 2007. ) is downloadable from Microsoft

I was still left scratching my head after having read twice and attempting the problems in K&R. Literally, I
was excited as I read Kochan's book. His presentation is so clear, with the right balance
of explanation and examples without being too wordy/vague/simplistic (SAMS C in 21 Days) or too terse
(K&R).

This book is an excellent introduction to C language (covering all the fundamentals and then some) with some
consideration on good programming practices. I'm happy to see they've released a new edition.

A for content, F for the lack of differences from the 4th, January 4, 2005

In the fall of 2004, I used the fourth edition of "C Primer Plus" as the text for my class in introductory programming
in C.

Although I was not part of the decision to use it, I found it to be more than satisfactory. The explanations
are detailed and the order of the coverage is appropriate, although like almost everyone else, I altered the order
of presentation a bit. It covers what we commonly refer to as "plain vanilla C"; in other words programs run from
a command line interface. The coverage is complete, everything that one would cover in any beginning course in C
is present. The exercises and programming examples are generally well done, and the answers to the review questions
are included.

In looking through the fifth edition, I found very little that was different from
the fourth edition. The order of the material and the explanations are almost identical. Therefore,
my evaluation of the book is a bit different. I give it poor marks as a new edition, as I did not see anything that
justified publishing a new edition.

However, since the fourth edition worked so well, this one is also a good choice for learning C. Therefore, my
rating of this book is simultaneously an A for content and an F in terms of being justified.

I went back to C programming after programming in other languages for a bit. This book gives excellent and clear
explanations of concepts, including pointers/strings and arrays. The book has many example programs in each chapter
are well thought out and make the concepts clear.

This would be an excellent book to learn from or if your going back to C from some time away. Despite the Beginning
C title it covers a lot of topic (preprocessing/# defines etc.). It mainly covers C syntax and isn't a how to design
a program kind of book.

I find it makes an excellent reference as well and I reach for it more often than the other C books I have which
are both decent , Kernighan and Richie book and the more advanced. "C: A Reference Manual (5th Edition)" .

About the Author
Dr. N. S. Kutti has been teaching computer science courses for more than two decades and is now writing textbooks in
the United States and abroad. His research interests include real-time systems, operating systems, distributed systems,
and programming. Dr. Kutti is also the co-author of Data Structures in C++, published by Prentice-Hall, Inc.

Book Description
Reviewers of the earlier version of this book credited it with both an original approach and creative explanations for
the various concepts. This comprehensive new edition covers both C and Unix programming. It follows the ANSI standard
in C programming and the POSIX standard in Unix programming, which makes the text a useful tool for writing programs
for industry.

Using numerous examples, C and Unix Programming: A Comprehensive Guide explains the basic concepts of the
C language by creating the C-Virtual Machine, a unique, effective approach to helping students grasp technical
ideas.

Everyone from high school graduates who are interested in programming to IT professionals, scientists, researchers,
and other sophisticated computer users will benefit from the techniques and examples provided.

Among its many key features, this book:

Details the concepts and ANSI features of C and its high-level application programming support

Looks like Intermediate to advanced university textbook. I do not know much about David Brooks but David Gries was a
talented author when he was young. Later he went into verification fundamentalism and published nothing on real value.
I hope that the book is in the style of
Primer on Structured Programming
Using Pl/1, Pl/C and Pl/Ct by Richard Conway, D. Gries, which was on of the best intro books on its time. They
start the book with explaining of basic I/O. I see the main value of the book that it covers classic algorithms
like Searching&Sorting (Ch.8), Basic statistics (Ch.9) and Binary Trees (Ch.10) and thus can be used as a intro "Algorithms
and Data Structures" textbook.

For anyone interested in learning about the SPARC Architecture/Instruction Set (and RISC machines in general)
this book is invaluable. It is especially useful for optimizing iterative and decision making C/C++ constructs.
In fact, if one follows the tenets espoused in this book, one can learn to hand optimize time-critical sections
of C/C++ code that is better than that produced by gcc or cc - the aversion of the UNIX community to write any code
in assembly language notwithstanding.

The book really delivers what its rather verbose title implies. That is, a really outstanding
feature of the text is the way in which the author translates the standard C/C++ constructs to their low-level counterparts.
He does this in stages - creating a variety of examples that progress from functional but grossly inefficient code
fragments up to superbly succinct variants. I have used this book in a one semester undergraduate course at the
University of Delaware for three years and have also used excerpts from it when I have taught the MIPS Architecture.
There is no other book that treats RISC (or CISC) architecture from Professor Paul's relational premise, with which
I totally agree. Having taught INTEL stuff for 10+ years, I firmly believe that much of its content could be effectively
utilized in CISC courses. The book is also used as the secondary text in the graduate compiler course at U.D.

The book is not without flaws, most of which are because of an incredible number of typographical
errors - I have counted over 60 just involving commas! Hopefully the new edition which I believe is due to be published
soon will have been edited/typeset with more care. Also, there are some minor changes to the gnu software (gdb and
gcc) that need to be upgraded.

This is an incredibly rich Data Structure text presented in a easy to read
and straightforward manner. The text layout is appealing to the eye with lots of supporting pictures, diagrams,
tables, Pseudocode algorithms, and program code. The Pseudocode is general for any language yet closely relates
to C. The program code is in C. The Pseudo code logic covers all data structures very well. ~J Franzmeier

Classic book. For example, the very first exercise given is to print "hello, world" became a standard way of introducing
new language in a programming books. Not for the beginner, you need to know well at least one other language before
reading this book. Might serve as a quick reference too. Written when memory was expensive, hence it takes all the short
cuts to save storage. Therefore some examples (hort implementation of famous UNIX commands) are no longer represent recommended
way of coding them.

It shows its age. In 2003 one can see weaknesses and their tool-oriented approach looks somewhat naive in view of existence
of scripting languages like Perl, Python, TCL, etc. Still it is a valuable book that somewhat illuminated (sometimes
questionable) tradeoffs in designing C as a hybrid of BCPL and PL/1.From the point of view of PL/1 heritage especially problematic was
C treatment of strings (downgrading them into a library) and you can find some interesting info about this design decision
in the book.The exercises are challenging and
some of them are pretty creative, reminding The Art of Computer Programming (there is a "solutions
book" by different authors)

Yes, this is the classic text on C, but in 2003, there are better books.

If you want to know what went on in the designers mind in the creation of C, get this book.

If you need a tutorial about C, there are better choices.

A reader (New York, USA)

not the best, June 26, 2002

with all due respect to K&R, i have to point out that there are better C programming books for beginners. <C
a software engineering approach>(3ed), is a good example: it does a better job cleaning the dusty corners of C.

for this K&R's book, one thing i don't understand is that they seem to be obssessed with using string processing
functions as examples. the matter of fact is, the C standard library does a lousy job processing strings: most of
the string processing functions are type unsafe and tedious to use.

as for why C is so popular (hence this book), one is because C is relatively easy to learn and use, compared
with C++, ML etc. the other reason is that unix and most unix libraries are written in C. but with virtual machine
around the corner, it's time to move one level up. even though i use C all the time for writing compilers and kernel
drivers, other languages like java/ ML/ python/ lisp are much more fun to use.

HiRez (from California, USA ):

Great Reference Book, Beginners Look Elsewhere, October 30, 2002

"The C Programming Language" is NOT a book for beginning programmers, or for those very new to C who wish to
learn gradually. It is not much of a tutorial. It's written for either very experienced programmers coming from
other languages, or for those who know the basics of C and need a reference book. The descriptions and examples
are terse, and the learning curve is steep. Once you are comfortable programming in C, however, this is the one
book you want next to you (and it will likely be the ONLY reference book you will ever need for straight ANSI C).
Since it was written by the original authors of the C language, it's hard to imagine anyone being more authoritative
on the subject, and although there's little hand-holding, it is well-written and pleasant enough to read through
cover-to-cover. When you're ready to really get your hands dirty, do not hesitate to order this book.

casenagi (Peoria, AZ. United States )

A great Bible. Not a great tutorial., June 28, 2003

I got this book and tried to use it to learn C. I got very frustrated and eventually went out and bought "C by
Example" which is more of a beginners type book. After getting my feet wet with the basic concepts I came back to
this book and could actually use it to learn from.

If you have no programming experience than I do not reccommend this as your first book. Get a more introductory
book first and then dive into the K&R book.

16: Why do many experts not think very highly of Herbert Schildt's books? A good answer to this question
could fill a book by itself. While no book is perfect, Schildt's books, in the opinion of
many gurus, seem to positively aim to mislead learners and encourage bad habits.

The above reviews are admittedly based on two of Schildt's older books. However, the language they
describe has not changed in the intervening period, and several books written at around the same time remain highly
regarded. The following humorous post also illustrates the general feeling towards Schildt and his books.
http://www.qnx.com/~glen/deadbeef/2764.html

There is exactly one and ONLY one C book bearing Schildt's name on its cover that is at all recommended
by many C experts - see Q 25.

Very readable and nice introduction to C, but no WEB site and no e-text. Contains more material than Absolute Beginner's Guide
to C(see below). Decent use of figures and flowcharts. Probably one of the best illustrated C book that I saw (I
still want to take a look on the Illustrating C, though ;-). Small but important from
teaching standpoint fact: the author always use brackets in if statements. The book was typeset and organized well.
Each chapter contains summary and exercises. I personally prefer having an abstract before each chapter, but summary is
also important. In this edition you can download all examples publisher page(
Que.).

It is a good book for beginners and its pretty cheap. It's not great but still good in explaining pointers (some good
information about this topic is available from the WEB -- see my C links). The book contains
summaries, but does not contain questions or exercises, so it is less suitable than C by Example
for academic environment. Examples are good and tests can be downloaded the Wrox Web site. The author use the main
sequence loops(ch4)-arrays(ch5)- strings(ch6)-pointers(ch7) which is a pretty reasonable approach for teaching the
language to a beginner. Pointer examples 7.1, and 7.8 are a really excellent graphical explanations of "what is what".

The shortcoming that I see is that the chapter on pointer can have several more typical examples. The chapter on string
manipulation is really weak -- for example the author do not mention such important functions as str2cpy.

For an introductory book it's rather small book (only 525 pages). This book can be considered as the author third book
on C (the first one was in 1994). See also the
author interview
to amazon.com (it would be interesting to ask him why he does not consider illustrations as an important method of making
programming more approachable for beginners ;-):

I think programming is easier that it looks to folks who haven't tried it, and I enjoy trying to make
programming more approachable for beginners. My primary interest and motivation in writing lies in finding better ways
to communicate the ideas -- to simplify them as much as possible, and to put them in an understandable context. I get
a real kick out of every reader that writes in to Wrox saying they thought one of my books was great.

Ivor Horton authored 3 other books on C and the only problem with him that he managed to published three more books
the same year ;-).

Paperback, 525pp

tony@pittarese.com (Pensacola, FL) , November 10, 1998

Generally a good beginning text

I've taught C classes using this as the textbook and find the students generally receptive to
the book. As a previous reviewer mentioned some of the things the author does (such as define main with a void return
type) are not correct, and he picks up the pace of coverage significantly in difficult areas such as pointers.

If you do buy this book, buy a good reference book such as "The C Programming Language" by Kernighan
and Ritchie to go with it. Many library functions are not well documented in the Horton book.

If you know nothing about C and want to pick it up on your own, this book is one of the best I've
seen at making it approachable. Its few errors are just (relatively) minor annoyances.

This book competes with Teach Yourself C in 24 Hours If you've never programmed
in C before, this is a good starting point, but probably C by Example is better. The book is friendly, clear and what is
most important for high school it is not boring. Decent typographical quality, but again C by Example is better. The author
introduced concepts of maps as a substitute for summary before each chapter -- a very interesting innovation. Maps contain
a very useful information.

This is an excellent book for a 15 years old. BTW pretty large subset of C is covered... More advanced and more suitable
for high school is C by Examplethat was published 1993.

I recommend this as your first book for the university-level course. It is reasonably priced and pretty recent. A very
nice presentation. Designed for a 1- or 2-semester course. Includes exercises and quizzes. Instructor's guide is available.
There is also C++ book of the same authors C++ Primer Plus that with some reservations can also
be used as an intro book.

Good but expensive... It is a university type book and not very suitable for high school students. If you solve the
exercises (and they are doable) you will be on a decent level of mastering the language (libraries are quite a different
story). Only 593 pages devoted to C and that diminish the value of the book -- the second part of the book is essentially
useless and diminish the value -- there are plenty of C++ and Java books on the market. On a positive side it provides the
useful introduction to pointers and pointer arithmetic. The examples are well integrated into the flow of presentation,
and it is well indexed (it is an excellent reference book).

lore. There is a very minimal amount of code in the book. Learning the correct way to free a singly-linked
list and how to declare arrays and function pointers is by no means in the "expert" category in my opinion.
Much of the material in this book is presented in a first semester course on programming and all of the topics
that are superficially covered in this tiny book are better explained in other books.

I found about 4 to 5 pages of useful information in the book and the rest was just fluf. If
you want to learn about operating systems, assembly language, pointers and dynamic memory management, data structures,
or algorithms, then get books that deal with topics explicitly. You wont find that kind of information in this
little book. This book concerns itself with topics that show how to unscramble poorly written code like: z =
y+++x; I dont know anyone who writes code like that!

If your still having trouble with arrays and pointers, then this book can be of help,
otherwise I dont think the price of this book is justified.

Mike Vanier (mvanier@bbb.caltech.edu) from Pasadena, California , March
18, 1999 ****Generally excellent, but marred by lots of typos
This book is an extremely valuable discussion of a variety of topics about the C language that are poorly described
in other books, ranging from how to read complicated typedefs to how your C program compiles and runs on the
computer. The material on C++ is quite dated (the book dates from 1994). However, the most annoying thing
is the large number of typos. There is a whole figure missing on one page, and there are numerous smaller
typos (mostly obvious) throughout the text. There are two big errata sheets on the author's web site for prevt
the author's offer to pay $1 for mistakes in the book reported to him DOES NOT apply to typos, only to technical
corrections.

nonblonde5@aol.com , September 11, 1998 *Dark star: Burned out Slag!I you really find anything in this book very helpful you'll never make it as a C programmer.
Any reasonablly bright programmer can figure out everything in this book fairly quickly. If you want to learn
C study the standard library and emulate it. Pay attention to th details, to the way pointers are used, etc.
Learn tactics to eliminate any habitual errors you're making and read the code listings in magazines. If you
run accross mangle code like this book deciphers, fire the programmer or find another job! Professionalism prohibits
one from writing obscure and ill-convieved code such as this. There is one absolute truth in programming,
badly written code stems from poorly understanding the problem. (Not from the language you're using!)
Study the problem until you understand it well enough to explain it easily to someone else and your code will
magically become simple, fast, efficient and elegant. If you want a good laugh buy a comic book, its cheaper
and more targeted to that end.

Contains good introduction to pointers...

Expensive university style book. The author does not have a real grasp of the language as a whole, so
the language is presented as a sequence of non related elements that one needs to know. Very dull,
boring with vulgar and non-related to topics illustrations. Very bad typographic quality. IMHO not suitable
for self-study. Probably can be OK in a university environment with a strong professor, but even in this
case you better buy another one.

Why I wrote "The C/Unix Programmer's Guide", April 8, 1999 When I started teaching C at UW-Milwaukee,
students would often come to me with simple questions about library functions, using "make", and the
like. Not being one to give up answers easily, my first response was usually "did you check the man
page?" In response, students would often say things like, "yes, but the language it's written in isn't
offered at this school". After a short time, I began to think, "Hey, wouldn't it be nice if someone
wrote a book about this stuff?". We looked around, couldn't find one, and resigned ourselves to using
generic C books, along with two additional recommended books, which were grossly underutilized, and
really cut into the students' entertainment budget. A few years later, I thought to myself, "Hey, wouldn't
it be nice if someone wrote a book about this stuff?" (Dejavu!) Then it hit me that SOMEONE had to take
action, and that's how "The C/Unix Programmer's Guide" came to be.

I've programmed on many different platforms over the past 18 years, and C and Unix provide the most
enjoyable environment I've found. I hope you'll find this book helpful in getting you into Unix programming,
so you can share in the experience!

ANNMARIE K MANZITTI from Saint Clair Shores,

The C Unix Programmer's Guide was the only book I could find that provided useful background
information as well as thoughtful, applicable coding examples. What impressed me most is the
fact that all the information found in the man pages on C as well as further insight was combined
into an easily readable and searchable format. As a student of computer science, I was familiar
with Borland/Microsoft C++, but I had no previous experience with C or Unix. This book helped
me get an A (one of three) in Operating Systems! While my classmates struggled on assignments,
I was able to find exactly what I needed to complete the assignments on time. I truly believe
that without this book I would not have performed nearly as well. Thank you Mr. Bacon for writing
such a great book!

I have been learning C++ for a while on a linux platform, and started
to look at some C stuff in the kernel and other programs to broaden my knowledge. I saw
that that although C++ is derived from C it doesn't necessarily do stuff the same way, so
I picked up this book. It was right on the mark! and explained some peculiar C stuff right
away and in a good easy to read style. It consolidated my knowledge well an added to my
understanding, particularly with pointers to pointers by including well thought out text
and pictures well done. It also provides a good tutorial into basic GCC usage and the peculirities
of programming for Linux, I recomend it.

***** EXCELLENT TUTORIAL

Aside from teaching myself BASIC on my Commodore 64 way-back-when...this is the first programming
language I have learned and I owe it all to this book. It is fantastic. Step-by-step, they take
you from defining/describing what C is, to writing real-world programs.

You would do well to ignore the ignorant reviewers who complain about the
title "21 days" (or 24 hours). These people are only looking for excuses. All the 'Teach yourself
in 21 Days' books should be seen as 21 LESSONS (and the 24 hours as 24 LESSONS). Could I do
it in 21 days? Yes, following the book's plan I could. Easily. But, I have a full time job,
family, etc. and these factors can NOT be held accountable by the authors. 21 Excellent Lessons.

Days, Hours, months...whatever YOUR pace is, this book does an EXCELLENT job
of teaching you what you need to know to write real-world, practical C Programs. I first learned
Unix with using of the 'Teach yourself' books and have been a devoted reader ever since.

Some days I have time to go through 2 lessons while other times a single lesson
may take me a day or 2 due to time constraints. Bottom line: I LEARNED C FROM THIS BOOK AND
YOU CAN TOO.

I am NOT a computer science major. I am a self-taught Linux hacker who never
wrote a line of code (except for a little BASIC 15 years ago) and I am now writing C code and
tinkering with Open Source programs. (I'm running Slackware and Debian, if you were wondering).

Other tutorials are fine but many assume you are using Windows 95/98. "C is
C is C", but this book is written in 'Linuxland' for Linux users; GCC is carefully explained
and used here. I use and love the Nedit editor which was one of several recommended in the book.

New to C? Or want a fresh start from the beginning while in a Linux environment?
GET THIS BOOK and digest all 21 LESSONS at your own pace!

So far I saw only one decently illustrated C book -- C by example.
By there should be C -books for the visual thinker like me. I believe a picture is worth a thousand
words. In this book drawings are used to illustrate important concepts and constructs. Includes
complete list of ANSI standard library functions with prototypes and descriptions. Good examples
of linked lists, b-trees, stacks, etc. From the reader review:

I got an "A" in my C course. And I used 5 text books. The ONLY textbook that
really helped was Alcock's "Illustrating C". It uses diagrams in a truly "revolutionary" way
that really helps understanding. It's like moving from black and white to colour. The intention
is to provide the student with a set of course notes, complete with instructor black-board diagrams
-- only better. It really works. It's enjoyable. Did I mention I got an "A"? I hope that other
textbook writers pick up on Mr. Alcock's unique style! Bravo

There are several other sources of advanced C programming knowledge then books devoted directly to C:

Tcl books -- Tcl has excellent interface with C (that can be viewed as an advanced C library) and is
the best tool to use in complex projects -- IMHO combination of C and TCL in many cases is much better and more powerful
that C++)

Compiler books, especially those that provide the whole compiler code in C as a part of the book. Compiler
writers is an elite of C programmers and here yhou really can find level. unsurpassed by pother authors.

OS internals books. The same thinking as about compiler writers applies.

Probably the best advanced C book in existance...
Reviewer:
tqbf@pobox.com from San Francisco, CA
August 4, 1999
Clearly written and well organized, this book presents more than 20 _highly_ useful library interfaces for containers,
string management, mathematics, and memory management. There isn't a line of code in the whole book that you
couldn't take and use, verbatim, in a project today --- after reading this book, you'll probably never have
a compelling reason to write a string library or a hash table interface again.

More importantly, though, each example library illustrates ways to effectively design consistant
and useable library interfaces, from generic ADTs to system service wrappers. After reading this book, you'll
not only have an arsenal of useful code to leverage, but also a good understanding of how to design clean, modular,
reuseable components for your application.

Hanson's C code is extremely clear and concise. Even if you've been programming professionally
for a long time, you are likely to pick up a useful technique or two just by reading the source code
in the book. If you're not very experienced, you will learn about C programming idioms that will be valuable
to you in future work.

I really like how this book, and Hanson's other book ("A Retargetable C Compiler: Design
and Implementation") are put together. Hanson employs Literate Programming techniques to weave the code he's
discussing together with his discussion. This makes it very simple to track what portions of the code are being
talked about at any point

wonderful
C book.Reviewer:
Defang Zhou (dzhou@zoo.uvm.edu) from Vermont, USA July 15, 1999
This book is a highway leading you form toy project to real-life project. The author told you exactly what you
want when you programming. The book detailed a lot of tricky stuff which would haunted you for a long
time before you read this book.

This huge (1400 pages!) intermediate/advanced book on C covers wide range of topics including algorithms. Can be
used in Advanced C courses. Should not be your first or only book. You need some understanding of C to benefit
from the book. It covers pretty advanced things. It reminds that C is a simple but extremely powerful language and that
in certain areas it can give any other language including Java a run for the money ;-)

I think this is one of the best books in Sams Unleashed series and one of the most important C books published
recently. It’s really well written and comprehensive.

Unfortunately amazon.com does not provide the table of contents for the book, which is pretty impressive. Here
is a very compressed TOC:

As one can see the book covers a wide range of topics including such forgotten in programming things as optimization
of code and expression parsing and evaluation. Some topics like sorting, searching, tries, graph algorithms actually
belong to a typical algorithms and data structure course. But the book covers them much more realistically. Examples
are written in a very decent style using the latest version of the language and are quite useful.

And for such amount of information the price is very good.

All-in all this is a rare solid C book in the current C++ oriented world and I highly recommend it for developers
and university students.

Book Description

Covers the recently ratified new C standard - C9X

Focuses on portable programming, providing code that is useful across all platforms, including mainframes

Fun to read. Covers floating point numbers and their pitfalls. Non Unix related stuff is outdated and weak.
Chapter
about pointers in available online. It has very good graphic and generally can be considered as the best explanation
of pointers on the WEB. The source code is available on the publisher's Internet server. One of the best things
about this book is the exercises that it gives, at the end of each chapter.

Table of Contents

Preface

I. Basics

1. What Is C?

2. Basics of Program Writing

3. Style

4. Basic Declarations and Expressions

5. Arrays, Qualifiers, and Reading Numbers

6. Decision and Control Statements

7. Programming Process

II. Simple Programming

8. More Control Statements

9. Variable Scope and Functions

10. C Preprocessor

11. Bit Operations

12. Advanced Types

13. Simple Pointers

14. File Input/Output

15. Debugging and Optimization

16. Floating Point

III. Advanced Programming Concepts

17. Advanced Pointers

18. Modular Programming

19. Ancient Compilers

20. Portability Problems

21. C's Dustier Corners

22. Putting It All Together

23. Programming Adages

IV. Other Language Features

A. ASCII Table

B. Ranges and Parameter Passing Conversions

C. Operator Precedence Rules

D. A Program to Compute a Sine Using a Power Series

Glossary

Index

Very good, not perfect, July 23, 2000
Reviewer: Chad C. Keep from northglenn, co USA
The author has many good points about style, many valid. Except that I find his over use of comments unessicary, especially
when commenting declarations of variables. Simply unneeded (most of the time) If you name variables correctly. While
I definitely do not subscribe to the idea that hard code to write should be hard code to read. Some basic literacy,
in common variable names such as I or j for integer counters. I am about Ѕ way though the book, I particularly liked
chapter 7 (Programming process). My only other criticism of this good book, is it doesn't prepare the reader much to
some of the common bad conventions and bad habits some people have, and likely will see. The book is pretty easy to
read and it's a good beginner book, if not the preferred beginner book, just mildly over hyped. I learned some new things,
a good read.

The BEST C book this C programmer has ever read!, January 26, 1998
Reviewer: lpike@cybertron.com from Florida, USA
I own literally shelves full of C and C++ books, and I've been programming in C professionally for almost ten years.
This is THE book to have on C. I insist that every junior programmer I work with has a copy! It
addresses not only programming syntax but good software engineering practices, and it has the most realistic real-world
types of problems I have ever seen. When he asks you to find the bug in a section of code, those are exactly
the type of bugs I see in novice programmers' code again and again. C is not a language for people who need to be coddled,
and this book doesn't hold your hand; it just gives you lots of great information on C and how to do good software engineering.
If you are a serious C professional, you should own this book.

At first glance the book purports to be similar to other early Bell Labs books about C, specifically, "The C Programming
Language", "The Elements of Programming Style", "The C Standard I/O Library", and (not bell labs but another great book)
"C: A Reference Manual", etc.

However, the author suffers from being a compiler-writer who doesn't really understand the design philosophy of the
C language. This is the same afflication that Bjarne Stroustroup and other language designers suffer from. For example,
he complains that only 3% of switch statements in his own compiler have case statement fall-throughs, therefore "We
conclude that default fall-through on switches is a design defect in C." (p. 38). This is a rant of a dangerous person.
Two underlying concepts of the C language are, "No hidden instructions generated where I cannot see them," and "When
in doubt, provide open operators for maximum expressiveness - do not restrict expressiveness". Just because this particular
compiler-writer lacks the inventiveness to do interesting things with a switch statement he proposes to force his biases
upon the rest of the world. I have seen and written macro libraries that allow you to suspend & resume function calls,
and these libraries perform fall-through 100% of the time. Therefore, this book is in error and the author is a victim
of his own lack of creativity.

Another thing I disliked was a tendency to try to impress the reader with irrelevant facts that are not germane to
the subject, such as typos in the ANSI C standard or tired-out stories on how to burn out IBM PC displays. These things
are irrelevant and do not belong within the book.

I recommend you check out the book from a library (as I did) and please do not waste your money on this book.

It might be a bad time for good reference books. I have found its index to be inadequate.One
interesting review from Amazon.com states that it's a very difficult task to write a decent reference book -- you need
to compete with web sites that have much better searching and hyperlinking than the book.

Still Guy Steele is a unique author and the book worth reading.

Gerry (see more about me) from Perth, Western Australia

A reference + more, September 14, 2003

My friend borrowed this book from me about two weeks ago and won't give it back, I have since turned to my left
side over 20 times looking for it to no avail (serious). If I was to describe this book in one word it would be
"Clean", everything in this book is just beautiful, from the ease of use, to the technical details, to even it's
fonts and thickness of the pages, everything is so clean and precise that the book makes you want to read it and
perhaps even keep it on a pillow next to you at night (but enough about my sheltered life).

One thing that I did not expect before receiving this book was the amazing language overview
that comes with the book, they could have sold the book with just that part and it would have still been great.
The overview goes into great detail and is really good at pointing out things that other C books miss and the fact
that the author is well versed on all the features of the latest C99 Standard adds even more to the wealth of information.
My favorite part of the book is the part on the C Pre-processor, which had a great deal of information that I was
not previously aware of.

Apart from that, there is the reference side which has all the detail you could ever want
in a standard library reference book, all in a very simple to search format (Oh yeah and I should mention, the index
kicks ....).

So long story short, if you want a single book that you can turn to for 99.9% of your standard
C problems, divorce your wife and give that spot in your bed to "C: A Reference Manual (5th Edition)"... or 6th
if it's out by the time you read this review.

ps. If your looking for this book in a bookstore make sure the lady types in "C: A Reference
Manual (5th Edition)" and not "See: A Reference Manual (5th Edition)", long story, I'll tell you another time.

Here is counterview:

Despite the rave reviews, I found this book rather disappointing. It reads like the ISO/ANSI official
language grammar, that is, JUST THE FACTS AND IN TECHNICAL TERMS ONLY, with very few examples of how to use the
language constructs. If this is your only C reference, then your in for some long hours at the computer. I would
only recommend this book if you have an additional C reference manual that shows examples of how to use a construct.
This book only gives you the technical definition

for the construct i.e. parameters and return values along with unnecessary technical jargon in
90 percent of the book.

It is an ok REFERENCE book if you don't have the official ISO/ANSI C grammar lying around.
But look elsewhere for how to use the grammar productions effectively!

Here is another review that I got directly from a reader (it does not answers the question of closeness to ISO/ANSI
official document raise in the prev review, though):

I totally disagree on the reviews you quoted from Amazon.com. Don't forget this book is written as a reference
manual. As such, it is assumed that the readers should have some fundamental knowledge of C. That is also why it
is written the way it is.

I have been using the 3rd edition of the book for quite a while now. Since buying the book, I have never had the
need to turn to any other books. I think this book thoroughly deserves the rave reviews that it received. It certainly
deserves more than the 3 stars you gave it.

Like all C programmers, I keep a copy of K&R's C book on my bookshelf just in case. But I haven't turned to it since
I bought "C : A Reference Manual". It has been widely discussed on the Net about the K&R C book, and it is
universally accepted as a very terse book - not very readable, especially for beginners. Written by the inventors
of the language, of course it is
natural to regard it as the definitive reference. But it doesn't necessarily make it a better book than the others.
I think as a C book, it probably only deserves 3 stars!

P.J. Plauger was operating at full-tilt when he wrote this excellent guide to the implementation and use of the
C library. In particular, his treatment (and history) of <stdio.h> is outstanding.

Unfortunately, the Plauger of recent history is apparently being held captive by Microsoft. His "C/C++ User's
Journal" is brimming with non-portable Windows topics of little value to those interested in Standard C and, of
course, the Unix platform...where C began. Plauger has apparently forgotten the roots of the C programming language.
Nonetheless, this is among the five "must have" books for the serious C programmer

After knowing the basics of C. It's my second C book.
Generally, not suitable for "pure" novice without any programming experience, but if you want to know a little more
about C or if you already have learned some other languages, you can try this book.

Chapter 1~5:
Introduce the essential concepts you have to know about C (data type, flow control, expression etc.) in great detail.
I like chapter 3 most. It explains the concepts about scope, linkage, storage and the "static" keyword very clearly.
(those are what confused me when I read my 1st C book)

Chapter 6:
A must read chapter, "pointers".

Chapter 7~10:
Covers functions, arrays, strings, structures etc. with pointer related issue.
Those chapter will let you be more familiar with how to apply pointers on them.

Chapter 11:
Special topic on memory allocation. In normal C textbook you won't see a specific chapter dealing with this.

Chapter 14~18:
I don't like this part. Even if those chapters cover the preprocessor, I/O, standard library, data structures, and
runtime issue, the author doesn't give enough examples to illustrate them very well. For example in section 16.5,
the author talks about the Signals (in standard library). However, he just gives the concepts and tells us how to
use them but without A example!!!
If you have dealt with OS, you should know signals are very important and never easy to handle. Without a example,
how could readers understand the usage and the ideas for them.

This is a very good book for sure.
It points out the common programming error, tips and the differences between K&R C and ANSI C.
However, the only thing I am disappointed with this book is "a good start, but not a very good end". Those latter
chapters really show the concepts we need to know but without sufficient examples to demonstrate them out.

Even if the title of the book is "Pointers on C", it doesn't talk about the pointer all through this book. Instead,
it just puts more emphasis on pointers and teaches you C.

Lee Carlson (Global Mathematics, Saint Louis, Missouri USA )

The best book on C in print, April 11, 2002

For those who need an up-to-date ANSI overview of the C programming language, this book would be an excellent
introduction. Pointers are usually a stumbling block for those programming C initially, but the author does an excellent
job of detailing the use of pointers in this book. The use of pointers dominates the entire book, and after studying
it, readers will have a thorough, practical knowledge of how to take advantage of the performance power of C language,
due mostly to its use of pointers. For those programming in a commercial/business environment, where coding practices
are strictly enforced, this book would be a good desk reference, as the author includes discussion of sound programming
practices throughout the book. The book would also serve well those involved in teaching C in the classroom, as
it contains many exercises, ranging from very easy to highly advanced. And for those readers frequently facing legacy
code in C, such as scientific programmers, the author cites the differences between the older "Kernighan-Ritchie"
C, and the more modern ANSI C, the latter being used in the book. These differences are indicated in the margin
of the book, and are of an enormous help for those who must take older code and get it to run on more up-to-date
compilers.

The author also endeavors to organize the C code for those who are going on to study C++ and the accompanying
object-oriented approach to programming. In addition, he emphasizes how to write C code so as to make it more portable.
For those writing commercial applications in C that must be used on different platforms, this is a very important
issue of course. Particularly well-written is the author's discussion on the storage class of a variable, noting,
for those such as I who are pre-disposed to using recursion, that the formal parameters to a function cannot be
static if recursion is to be supported.

The book is full of examples such as this that give readers insight on the workings of C that fit their particular
programming style. He does discuss 'goto' statements in relation to function scope and in C statement structures,
but, thankfully, recommends such statements never be used. He gives an interesting counterexample to those who say
that goto statements must be used to break out of nested loops.

Also, the author discusses the difference between L- and R-values, and this is not usually included in beginning
books on C. Dynamic memory allocation has been at times a somewhat painful aspect of programming in C, but the author
shows how to do straightforwardly in the book.

Having a book like this that is predominantly about pointers is quite a blessing for those who are inexperienced
with them or for more experienced programmers who are still uncomfortable with their use. It is not uncommon these
days to have to write programs in one's professional work that involve triple pointers or even quadruple pointers.
In addition, for embedded systems programming, the use of pointer arithmetic is almost mandatory. This also is true
for writing applications in cryptography using C. The author does pay careful attention to pointer arithmetic in
the book.

The performance pay-off for using pointers is undeniable, and so a thorough knowledge of their use and pit-falls
is of upmost importance for those C programmers who are involved in writing performance-sensitive applications.
The author discusses in detail what can happen when pointers are misused and gives many examples of what to avoid
and good hints for the proper use of pointers. He recommends against the use of the 'null' pointer in array searching,
and recommends a strategy for circumventing them. Some very helpful diagrams are given for explaining pointer expressions.
In addition, the author gives helpful hints on when to use pointers and not subscripts when manipulating arrays
in C. The performance issues involved in this are extremely important in scientific programming using C. The author
gives a very interesting example of the differences in performance using pointers involving a program to copy the
contents of one array into another. Arrays of pointers, useful in data mining applications, are also given ample
treatment in this book, and the author addresses the issue of when to use a matrix instead of an array of pointers.

The author also gives an effective presentation of functions in C, particularly the construction of recursive
functions, and he employs some useful diagrams to illustrate how the variables in a recursive function call change
on the stack. The performance hit experienced by using recursion versus iterative loops is discussed in a standard
way via the Fibonacci series. Those readers raised in the functional programming paradigm will want to pay notice
these performance issues when using C to do recursion. Along the same lines, the author shows how to implement functions
with variable argument lists in C. This is another topic that is frequently passed over in beginning books on C.

The author's treatment of data structures in C is also very nicely done, and he includes again a topic not usually
treated in beginning books on C, namely the concept of a self-referential data structure. These are very important
in applications in artificial intelligence, and the author shows how to implement them in C using a data structure
that points to itself. This leads to a discussion of incomplete declarations. Very helpful diagrams are used again
to discuss how to access members of data structures and how to point to data structures. Bit fields, so often used
in embedded system applications, are also given a detailed treatment.

If you program in C or C++, you must read this book if you want to consider yourself a superior programmer. If
you are a college student, definitely read this book. Koenig fills in a lot of gaps left by authors of introductory
books on C or C++. Why do I mention C++? Because C++ is far more than just objects and classes. The lower level
implementation of functions is still basically C programming. He includes chapters on linkage, the preprocessor,
and portability. It is a short book that is definitely worth reading.

A reader from Cambridge, MA

A rare and unusual book for experienced programmers.July 23, 1999

Along with Holub's 'The C Companion',
this is one of the few programming books that I've read in 13 years of C programming that talks about real programming
issues instead of simply rehashing what a for loop is. A must read for C programmers.

A reader

Enormously entertaining and exceedingly helpful! May 13, 1997

This is among the five "must have" books on the astute C programmer's bookshelf. Actually, it spends little time
on the shelf since one refers to it time and time again. This slim volume packs a lot of information about those
"gotchas" that still "getcha" (when you least expect it). The Introduction is "Chapter 0", your first hint that
Koenig knows and respects the subject. His treatment of unscrambling complex declarations is especially good.

Why a 9 instead of a 10? Simple. Andy: please release a new version! The ANSI/ISO standard is
almost ten years old. :)

Do you aspire
to be a serious developer? If so, read this bk March 11, 2000

John Robbins did a great job on this book. I was very impressed both on the depth and breadth of the issues treated.

At first, I though on skipping the chapter on Visual Basic debugging, since I am strictly a VC++
developer, but I am glad I did not. Even that chapter gave me insights that I can use on my day to day, for example,
when he runs the VB compiler while in the debugger and is able to see how VB uses the C compiler's code generation
(second pass).

Some great insights and lots of good example on how to resolve problems and how to use all the
capabilities of the debugger to ones best advantage.

It will teach you what to do when the debugger gets you to a source line that before that line,
everything is working properly, after that line the world has turned upside down. It will teach you enough X86 assembly
to make you dangerous and be able to read between the (source) lines in the process. Even if you thought you knew
it already.

Could it be improved ? Yes, can't it always ? Coverage on tracking memory leaks could be expanded,
for example, to cover MFC's shortcomings when reporting them, but this book is a close to perfection as I have seen
them.

And it is a great read too. His style is easy to follow, even though some of the subjects are
deep and complex, but John transfers the knowledge so easily, it is amazing.

Once I completed my first read, I really felt like I had just finished listening to a very good
rendition of a Beethoven or Mozart simphony.

Every developer that aspire to be a serious developer should read it and reread it.

And thank you, John Robbins. I will be buying every book you write.

EJ Bartelds from Rotterdam, The Netherlands

Good, but
could be even better March 5, 2000

When I first heard John Robbins was writing a book on Win32 debugging, I was
delighted. I've been a fan of his MSJ Bugslayer articles since the beginning, and John's debugging knowledge, displayed
in those articles, has helped me tremendously.

However, for someone who has read all his MSJ work, this book is a bit of a disappointment. The reason
is that the second part of the book is a collection of his (slightly-rewritten) MSJ articles, with almost no new content
added as far as I can see.

The first part of the book, however, is worth every dollar, as other reviewers have already mentioned,
even though I was missing coverage of the WinDbg debugger, and MS tools such as userdump. Maybe in a second edition?

To summarize, I suspect this book to be a 5-star for anyone who is fairly new to debugging and has
not read John's MSJ columns. For others, who have been exposed to his columns, and have some experience, I'd rate this
book 3-stars.

The C/C++ Users Group has been collecting source code and making it available for the past 15 years. The trick
has been finding the package that has what you need. This book makes a big dent in solving that problem. It contains
brief descriptions of hundreds of C and C++ programs, libraries, and documentation, indexed by keyword, type of
functionality, OS/CPU and title.

Along with the book is a CD-ROM containing the complete C Users Group code distributions with
HTML indexes to direct users to the package they need. These indexes and HTML pages make the difference between
400 packages of data, and 400 packages of information.

The range of code available is astounding. It ranges from AI toolkits to compression utilities,
from DOS TSR toolkits to Unix utilities from games to ray-tracing image generation, and almost anything else you
can name.

FAIR USE NOTICE This site contains
copyrighted material the use of which has not always been specifically
authorized by the copyright owner. We are making such material available
in our efforts to advance understanding of environmental, political,
human rights, economic, democracy, scientific, and social justice
issues, etc. We believe this constitutes a 'fair use' of any such
copyrighted material as provided for in section 107 of the US Copyright
Law. In accordance with Title 17 U.S.C. Section 107, the material on
this site is distributed without profit exclusivly for research and educational purposes. If you wish to use
copyrighted material from this site for purposes of your own that go
beyond 'fair use', you must obtain permission from the copyright owner.

ABUSE: IPs or network segments from which we detect a stream of probes might be blocked for no
less then 90 days. Multiple types of probes increase this period.

The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be
tracked by Google please disable Javascript for this site. This site is perfectly usable without
Javascript.

Original materials copyright belong
to respective owners. Quotes are made for educational purposes only
in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains
copyrighted material the use of which has not always been specifically
authorized by the copyright owner. We are making such material available
to advance understanding of computer science, IT technology, economic, scientific, and social
issues. We believe this constitutes a 'fair use' of any such
copyrighted material as provided by section 107 of the US Copyright Law according to which
such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free)
site written by people for whom English is not a native language. Grammar and spelling errors should
be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting development
of this site and speed up access. In case softpanorama.org is down currently there are
two functional mirrors: softpanorama.info (the fastest) and softpanorama.net.

Disclaimer:

The statements, views and opinions presented on this web page are those of the author (or
referenced source) and are
not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with.We do not warrant the correctness
of the information provided or its fitness for any purpose.