Apue unix environment programming, unix environment programming
Today, we have finally finished reading all the first 17 chapters of APUE. Basically, the main knowledge is in these chapters.
After reading the "unix/linux Programming Practice tutorial", I felt very open and relaxed. At the code level, I learned many linux system mechanisms and never understood programming details, it also has a good grasp of the overall knowledge structure of UNIX programming.
APUE is widely recognized as a classic. It provides a thorough explanation of every knowledge and many careful tips. However, it seems that the process is not so beautiful, for the following reasons:
- 1. The poor translator level! Many sentences are not spoken by the Chinese. However, poor English. At the top, I can only look at man's level. I can only read the Chinese version. This book was translated by Yu jinyuan and a few graduate students. Some of them are barely able to read smoothly, but some chapters really need to carefully figure out what the original intention is. If you happen to encounter some difficult-to-understand knowledge points, you may feel that Baidu and google have to be happy. Even so, we can still understand the author's rigorous compilation level.
- 2. Many chapters have too many details. As a result, it is easy to fall into numerous details and forget the overall knowledge of this chapter. System programming is a multi-function parallel function. Many flag and many parameter settings make people complain.
- 3. Limited to the interface, there is not much extended knowledge, and there are not many mechanisms and principles involved in UNIX systems. This practical tutorial is well done. The directory structure, redirection, process, script features, and shell principles are quite relevant.
- 4. There are few legends, memory analysis, structure relationships, program structures, and system kernel interaction diagrams, which are very helpful for understanding knowledge.
- 5. There are very few instances, many of which are examples specific to an interface. There are few examples of linking knowledge points in practical sense. In addition, there are some difficult-to-understand chapters, no examples, just to introduce the interface functions, but as for how to use it, what role does it play in actual programming, I do not know. As if I was talking about it, let's look at it for you now. If you use this interface someday, let's take a look at it.
- 6. The Academic Research Spirit is too much, and most of the time it is very picky. The entire article is filled with various comparative judgments on various platforms. I believe that for the first time, many people will not be happy with these things. It may be a big and comprehensive book, especially the UNIX like version. If you want a book to cover all the situations, you have to do so. But this is also the details that must be taken into account across platforms.
- 7. it is indeed like a reference manual for UNIX key interfaces. Don't expect it to be thoroughly understood at once. It should be like this after reading the ideal story: Remember what functions, interfaces, and features are available, as for details and usage, check again to understand immediately.
- 8. He is very unfriendly to new users, as if the readers have already been involved in programming on unix, but they have not yet formed experience and knowledge systems. Without linux operation experience, you cannot directly view this book. Even if you have a lot of linux O & M (Common commands, linux system mechanisms, file systems, pipelines, process features, shell scripts) but without a complete C language, data structure, and a little knowledge of operating systems, gcc compilation, it will also encounter a lot of difficulties. In fact, this book is essentially a reference book. It is not an entry-level work and has been made step by step.
As for the advantages of this book, I will not mention that there are too many praises on the Internet. For me, the most important thing is to provide the functions of an operating system for the user program layer, that is, the so-called system interface, with a comprehensive and profound understanding, Let me know exactly what the program can do, and roughly know the complex software and what technologies are used at the underlying layer. I have a good understanding of C language security, stable programming, and cross-platform program development. Finally, I understood the kinship between C language and UNIX, which is simple and supreme, and only one thing is good.
Finally, let's talk about the process of reading this book. Of course, it is necessary for computers and networked computers with UNIX like systems.
I didn't use vi, but I don't want to use it. I even appreciate the use of 6. I just don't want to be bound by those religious beliefs. I don't want to disturb my energy for other details. I just want to learn programming and do a good job. This is the main thing.
The Virtual Machine Ubuntu12.04 uses the console's gedit and gcc as the development environment. Only by manually compiling and debugging can you understand the program construction and running process.
There is not a saying that in the information age, all objective difficulties almost do not exist. There is a fast-moving computer that adds a broadband and the determination to devote oneself to it, you can have any programming realm you want.
Network information is very useful. I have encountered almost all the difficulties in learning. This is almost the best teacher.