This volume contains the complete text of two books: Using C in Software Design, Second Edition, and The 101 Most Important UNIX and Linux Commands


USING C IN SOFTWARE DESIGN, 2E

As was the case in the first edition published in 1993, this book provides a creative approach to learning C by emphasizing software engineering in C. 

  1. All material has been class-tested. 
  2. The book avoids most implementation-specific language features. 
  3. A software project is introduced early in the book and appears throughout as new features of C are covered. 
  4. A separate chapter on larger programming using the make facility or the Visual Studio project for separate compilation is included. 
  5. A few programs are deliberately seeded with errors to help create programs that work correctly. 
  6. Special emphasis is placed on the design and implementation of user-defined libraries. 

A brief introduction to C++ is included. 

The second book delivers what the title states: It describes the 101 most important UNIX and Linux commands and system calls. The book bridges the gap between on-line tutorials and manual pages on one hand, and books of 1,000 pages or more that explore the nuances of many shell commands in exhaustive detail. While most of these sources provide excellent information, they do not really solve the plight of the novice user, nor do they fully answer the questions that more experienced, and even expert, users often have. 

Much of the complexity of UNIX and Linux, and much of the difficulty faced by users is caused by the extremely large and rich set of shell commands, many of which have a very large set of allowable options that, while useful in certain circumstances, often provide more frustration than help because of their complexity. Many UNIX and Linux system calls are also complex, and have interactions that can be rather difficult for many programmers. 

The many variants of UNIX cause additional difficulties. Even Linux has multiple variants: there are often subtle differences in the Linux implementations by Red Hat (Fedora), Ubuntu, SUSE, and Debian. 

For example, one of my recent senior students had a major project that required using a particular Linux software application containing a particular language character set and grammar. The software would not work (indeed, it would not even install properly) on three of the most common Linux implementations! 

Our approach is to focus on a smaller set of commands and system calls; the ones that are most important. For each of these, only the most useful of the many options are described. 

As a professor, I taught operating systems in general, and UNIX in particular, for over twenty-five years. As the author of the book Advanced Topics in UNIX, which was selected as a main selection on UNIX by the Newbridge Book Club, and Advanced Topics in UNIX, Second Edition (available electronically on this ebook platform), I had to make choices in what I presented and how I presented it. Finally, as an analyst/consultant on many different applications in multiple UNIX and Linux systems, I had to make choices based on the quality of the source code, and on its performance and maintainability. 

I am confident that I have made the correct choices in selecting which of the many shell commands, system calls and options to discuss in this book and at what level they should be discussed. I hope you agree. 


USING C IN SOFTWARE DESIGN, 2E

As was the case in the first edition originally published in 1993, this book provides a creative approach to learning the C programming language by emphasizing software engineering. This inexpensive book, extensively tested in several academic and professional settings, provides a gentle, but complete, introduction to the C language for a practicing scientist or engineer to be able to write substantial programs to solve scientific programs using C libraries. Extensive program examples are included to illustrate the major concepts of the C programming language. This book also illustrates the way that modern software engineering is typically done, by showing how a major software design and development project can be implemented in the C language. The first part emphasizes the simpler software engineering aspects of C, allowing the reader to begin writing interesting programs quickly. The second section discusses advanced C topics, such as pointers, structures, and the design of larger C programs that extend over several source code files. Key features include: 

  1. All of the material has been class-tested to ensure accuracy and usability. 
  2. As much as feasible, the book discusses the C language in general and avoids most implementation-specific features of the language. 
  3. A software project is introduced early in the book and appears throughout as new features of C are covered. 
  4. A separate chapter on larger programming using the make facility or the Visual Studio project for separate compilation is included. 
  5. A few judiciously chosen programs deliberately seeded with bugs or errors are used to illustrate potential errors and how they can be fixed to create programs that work correctly. 
  6. Special emphasis is placed on the design and implementation of user-defined libraries. 
  7. A brief introduction to C++ is included.

Write a review

Note: HTML is not translated!
    Bad           Good

C and 101 UNIX/Linux Commands

  • Product Code: RL2003E
  • Availability: In Stock
  • $7.99

  • Ex Tax: $7.99