Summary
The introductory examples, three simple file copy programs, illustrate many of the differences between C library and Windows programs. Appendix C shows some of the performance differences among the various implementations. The Windows examples clearly illustrate Windows programming style and conventions but only hint at the functionality available to Windows programmers.Windows NT5 (XP, 2000, and 2003) systems are the target platforms for this book and its examples. Nonetheless, much of the book applies to earlier NT versions and Windows 9x (95, 98, and Me).
Looking Ahead
Chapters 2 and 3 take a much more extensive look at I/O and the file system. Topics include console I/O, ASCII and Unicode character processing, file and directory management, file attributes, and advanced options, as well as registry programming. These two chapters develop the basic techniques and lay the groundwork for the rest of the book.
Additional Reading
Publication information about the following books is listed in the bibliography.
Win32
Win32 System Services, by Marshall Brain and Ron Reeves, and Programming Applications for Microsoft Windows (formerly Advanced Windows in earlier editions), by Jeffrey Richter, are two of the available books covering Win32 programming subjects from varying perspectives. Many of the available books have not been updated to cover advances since Windows 95 or Windows NT, however.The hypertext on-line help available with Microsoft Visual C++ documents every function, and the same information is available from the Microsoft home page, http://www.microsoft.com , which also contains a number of technical papers covering different Windows subjects. Start with the MSDN (Microsoft Developer's Network) section and search for any topic of interest. You'll find a variety of white papers, product descriptions, sample code, and other useful information.
Win64
Few books discuss Win64, but you can find a wealth of material on the Microsoft home page. See Chapter 16 for more information.
Windows NT Architecture and Windows NT History
Inside Windows 2000, by David Solomon and Mark Russinovich, is for the reader who wants to know more about Windows design objectives or who wants to understand the underlying architecture. The book discusses objects, processes, threads, virtual memory, the kernel, and I/O subsystems. It does not, however, discuss the actual API functions or Windows 9x and CE. You may want to refer to Solomon and Russinovich as you read this book. Also note the earlier books by Helen Custer and Solomon that preceded this book and provide important historical insight into NT evolution.
UNIX
Advanced Programming in the UNIX Environment, by the late W. Richard Stevens, discusses UNIX in much the same terms in which this book discusses Windows. Stevens remains the standard reference on UNIX features, but the book does not discuss threads. UNIX standardization has progressed, but the Stevens book offers a convenient working definition of what UNIX, as well as Linux, provides. This book also contrasts C library file I/O with UNIX I/O, and this discussion is relevant to Windows.If you are interested in OS comparisons and an in-depth UNIX discussion, The Art of UNIX Programming, by Eric S. Raymond, is essential and fascinating reading, although many Windows users may find the discussion slightly biased.
Windows GUI Programming
Windows user interfaces are not covered here. See Brent Rector and Joseph M. Newcomer, Win32 Programming, and Charles Petzold, Programming Windows, Fifth Edition.
Operating Systems Theory
There are many good texts on general OS theory. Operating System Concepts, by Abraham Silberschatz et al., is one of the more popular.
The ANSI Standard C Library
The Standard C Library, by P. J. Plauger, is a comprehensive guide. For a quick overview, The C Programming Language, by Brian W. Kernighan and Dennis M. Ritchie, lists and explains the complete library, and this book remains the classic book on C. These books can be used to help decide whether the C library is adequate for your file processing requirements.
Windows CE
SAMS Teach Yourself Windows CE Programming in 24 Hours, by Jason P. Nottingham, Steven Makofsky, and Andrew Tucker, is recommended for those who wish to apply the material in this book to Windows CE.
Windows Emulation on UNIX
See http://www.winehq.com for information and downloads for Wine, an open source Windows API emulation on top of UNIX and X.