ENGLISH

Head First C

Book information

Publisher
O'Reilly Media
Year
2012
ISBN
1449399916, 9781449399917
Language
english
Format
PDF
Filesize
41 MB (43214995 bytes)
Series
Head First Series
Pages
632\632
Time added
2021-07-15 02:58:05

Description

Ever wished you could learn C from a book? Head First C provides a complete learning experience for C and structured imperative programming. With a unique method that goes beyond syntax and how-to manuals, this guide not only teaches you the language, it helps you understand how to be a great programmer. You'll learn key areas such as language basics, pointers and pointer arithmetic, and dynamic memory management. Advanced topics include multi-threading and network programming—topics typically covered on a college-level course. This book also features labs: in-depth projects intended to stretch your abilities, test your new skills, and build confidence. Head First C mimics the style of college-level C courses, making it ideal as an accessible textbook for students. We think your time is too valuable to waste struggling with new concepts. Using the latest research in cognitive science and learning theory to craft a multi-sensory learning experience, Head First C uses a visually rich format designed for the way your brain works, not a text-heavy approach that puts you to sleep. Table of Contents (Summary) Table of Contents (the real thing) Intro Who is this book for? We know what you’re thinking We know what your brain is thinking Metacognition: thinking about thinking Here’s what WE did: Here’s what YOU can do to bend your brain into submission Read me The technical review team Acknowledgments Safari® Books Online Chapter 1: Getting Started with C: Diving in C is a language for small, fast programs But what does a complete C program look like? But how do you run the program? Two types of command Here’s the code so far Card counting? In C? There’s more to booleans than equals… What’s the code like now? Pulling the ol’ switcheroo Sometimes once is not enough… Loops often follow the same structure… You use break to break out… Your C Toolbox Chapter 2: Memory and Pointers: What are you pointing at? C code includes pointers Digging into memory Set sail with pointers Set sail sou’east, Cap’n Try passing a pointer to the variable Using memory pointers How do you pass a string to a function? Array variables are like pointers… What the computer thinks when it runs your code But array variables aren’t quite pointers Why arrays really start at 0 Why pointers have types Using pointers for data entry Be careful with scanf() fgets() is an alternative to scanf() Anyone for three-card monte? Oops…there’s a memory problem… String literals can never be updated In memory: char *cards=“JQK”; If you’re going to change a string, make a copy In memory: char cards[]=“JQK”; Memory memorizer Your C Toolbox Chapter 2.5: Strings: String theory Desperately seeking Frank Create an array of arrays Find strings containing the search text Using the strstr() function It’s time for a code review Array of arrays vs. array of pointers Your C Toolbox Chapter 3: Creating Small Tools: Do one thing and do it well Small tools can solve big problems Here’s how the program should work But you’re not using files… You can use redirection You can redirect the Standard Input with But there’s a problem with some of the data… Introducing the Standard Error By default, the Standard Error is sentto the display fprintf() prints to a data stream Let’s update the code to use fprintf() Small tools are flexible Don’t change the geo2json tool A different task needs a different tool Connect your input and output with a pipe The bermuda tool But what if you want to output tomore than one file? Roll your own data streams There’s more to main() Overheard at the Head First Pizzeria Let the library do the work for you Your C Toolbox Chapter 4: Using Multiple Source Files: Break it down, build it up Your quick guide to data types Don’t put something big into something small Use casting to put floats into whole numbers Oh no…it’s the out-of-work actors… Let’s see what’s happened to the code Compilers don’t like surprises Split the declaration from the definition Creating your first header file If you have common features… You can split the code into separate files Compilation behind the scenes The shared code needs its own header file It’s not rocket science…or is it? Don’t recompile every file First, compile the source into object files It’s hard to keep track of the files Automate your builds with the make tool How make works Tell make about your code with a makefile Liftoff! Your C Toolbox C Lab 1: Arduino The spec: make your houseplant talk Build the physical device Here’s what your code should do Here are some useful Arduino functions The finished product Chapter 5: Structs, Unions, and Bitfields: Roll your own structures Sometimes you need to hand around a lot of data Cubicle conversation Create your own structured data types with a struct Just give them the fish Read a struct’s fields with the “.” operator Can you put one struct inside another? How do you update a struct? The code is cloning the turtle You need a pointer to the struct (*t).age vs. *t.age Sometimes the same type of thing needs different types of data A union lets you reuse memory space How do you use a union? An enum variable stores a symbol Sometimes you want control at the bit level Bitfields store a custom number of bits Your C Toolbox Chapter 6: Data Structures and Dynamic Memory: Building bridges Do you need flexible storage? Linked lists are like chains of data Linked lists allow inserts Create a recursive structure Create islands in C… Inserting values into the list Use the heap for dynamic storage Give the memory back when you’re done Ask for memory with malloc()… Oh, no! It’s the out-of-work actors… Let’s fix the code using the strdup() function Free the memory when you’re done Exhibit A: the source code An overview of the SPIES system Software forensics: using valgrind Use valgrind repeatedly to gather more evidence Look at the evidence The fix on trial Your C Toolbox Chapter 7: Advanced Functions: Turn your functions up to 11 Looking for Mr. Right… Pass code to a function You need to tell find() the name of a function Every function name is a pointer to the function… …but there’s no function data type How to create function pointers Get it sorted with the C Standard Library Use function pointers to set the order Automating the Dear John letters Create an array of function pointers Make your functions streeeeeetchy Your C Toolbox Chapter 8: Static and Dynamic Libraries: Hot-swappable code Code you can take to the bank Angle brackets are for standard headers But what if you want to share code? Sharing .h header files Share .o object files by using the full pathname An archive contains .o files Create an archive with the ar command… Finally, compile your other programs The Head First Gym is going global Calculating calories But things are a bit more complex… Programs are made out of lots of pieces… Dynamic linking happens at runtime Can you link .a at runtime? First, create an object file What you call your dynamic library depends on your platform Your C Toolbox C Lab 2: OpenCV The spec: turn your computer into an intruder detector What your code should do The finished product Chapter 9: Processes and System Calls: Breaking boundaries System calls are your hotline to the OS Then someone busted into the system… Security’s not the only problem The exec() functions give you more control There are many exec() functions The array functions: execv(), execvp(), execve() Passing environment variables Most system calls go wrong in the same way Read the news with RSS exec() is the end of the line for your program Running a child process with fork() + exec() Your C Toolbox Chapter 10: Interprocess Communication: It's good to talk Redirecting input and output A look inside a typical process Redirection just replaces data streams fileno() tells you the descriptor Sometimes you need to wait… Stay in touch with your child Connect your processes with pipes Case study: opening stories in a browser In the child In the parent Opening a web page in a browser The death of a process Catching signals and running your own code sigactions are registered with sigaction() Rewriting the code to use a signal handler Use kill to send signals Sending your code a wake-up call Your C Toolbox Chapter 11: Sockets and Networking: There's no place like 127.0.0.1 The Internet knock-knock server Knock-knock server overview BLAB: how servers talk to the Internet A socket’s not your typical data stream Sometimes the server doesn’t start properly Why your mom always told you to check for errors Reading from the client The server can only talk to one person at a time You can fork() a process for each client Writing a web client Clients are in charge Create a socket for an IP address getaddrinfo() gets addresses for domains Your C Toolbox Chapter 12: Threads: It's a parallel world Tasks are sequential…or not… …and processes are not always the answer Simple processes do one thing at a time Employ extra staff: use threads How do you create threads? Create threads with pthread_create The code is not thread-safe You need to add traffic signals Use a mutex as a traffic signal Your C Toolbox C Lab 3: Blasteroids Write the arcade game Blasteroids Your mission: blast the asteroids without getting hit Allegro What does Allegro do for you? Building the game The spaceship The blast The asteroid The game status Use transformations to move things around The finished product Leaving town… It’s been great having you here in Cville! Appendix i: Leftovers: The top ten things (we didn't cover) #1. Operators #2. Preprocessor directives #3. The static keyword #4. How big stuff is #5. Automated testing #6. More on gcc #7. More on make #8. Development tools #9. Creating GUIs #10. Reference material Appendix ii: C Topics: Revision roundup Basics Pointers and memory Strings Data streams Data types Multiple files Structs Unions and bitfields Data structures Dynamic memory Advanced functions Static and dynamic libraries Processes and communication Sockets and networking Threads Index

Similar books

Session C11: Ancient Cultural Landscapes in South Europe – their Ecological Setting and Evolution, Session C22: Gardeners from South America, Session S04: Agro-Pastoralism and Early Metallurgy Sessions, Session WS29: The Idea of Enclosure in Recent Iberian Prehistory, Session C88: Rhytmes et causalites des dynamiques de l'anthropisation en Europe entre 6500 ET 500 BC: Hypotheses socio-culturelles et/ou climatiques: Proceedings of the XV UISPP World Congress (Lisbon 4-9 September 2006) / Actes du XV Congrès Mondial (Lisbonne 4-9 Septembre 2006) Vol.36

Session C11: Ancient Cultural Landscapes in South Europe – their Ecological Setting and Evolution, Session C22: Gardeners from South America, Session S04: Agro-Pastoralism and Early Metallurgy Sessions, Session WS29: The Idea of Enclosure in Recent Iberian Prehistory, Session C88: Rhytmes et causalites des dynamiques de l'anthropisation en Europe entre 6500 ET 500 BC: Hypotheses socio-culturelles et/ou climatiques: Proceedings of the XV UISPP World Congress (Lisbon 4-9 September 2006) / Actes du XV Congrès Mondial (Lisbonne 4-9 Septembre 2006) Vol.36

2010 · PDF

THE BRITISH ARMY IN INDIA: ITS PRESERVATION BY AN APPROPRIATE CLOTHING, HOUSING, LOCATING, RECREATIVE EMPLOYMENT, AND HOPEFUL ENCOURAGEMENT OF THE TROOPS. with AN APPENDIX ON INDIA : THE CLIMATE OP ITS HILLS ; THE DEVELOPMENT OF ITS RESODRCBS, INDUSTRY, AND ARTS ; THE ADMINISTRATION OF JUSTICE ; THE BLACK ACT ; THE PROGRESS OF CHRISTIANITY ; THE TRAFFIC IN OPIUM ; THE VALUE OF INDIA ; PERMANENT CAUSES OF DISAFFECTION, AND OF THE RECENT REBELLION ; THE TRADITIONARY POLICY; MISGOVERNMENT BY NATIVE RULERS ; ANNEXATIONS OF THEIR TERRITORY, ETC.

THE BRITISH ARMY IN INDIA: ITS PRESERVATION BY AN APPROPRIATE CLOTHING, HOUSING, LOCATING, RECREATIVE EMPLOYMENT, AND HOPEFUL ENCOURAGEMENT OF THE TROOPS. with AN APPENDIX ON INDIA : THE CLIMATE OP ITS HILLS ; THE DEVELOPMENT OF ITS RESODRCBS, INDUSTRY, AND ARTS ; THE ADMINISTRATION OF JUSTICE ; THE BLACK ACT ; THE PROGRESS OF CHRISTIANITY ; THE TRAFFIC IN OPIUM ; THE VALUE OF INDIA ; PERMANENT CAUSES OF DISAFFECTION, AND OF THE RECENT REBELLION ; THE TRADITIONARY POLICY; MISGOVERNMENT BY NATIVE RULERS ; ANNEXATIONS OF THEIR TERRITORY, ETC.

1858 · PDF

Idries Shah 27 Books Collection : A Perfumed Scorpion, A Veiled Gazelle, Caravan of Dreams, Darkest England, Destination Mecca, Evenings with Idries Shah, Knowing How to Know, Learning How to Learn, Letters and Lectures of Idries Shah, Neglected aspects of Sufi study, Observations, Oriental Magic, Reflections, Seeker after Truth, Special Illumination, Special Problems in the study of Sufi ideas, Sufi thought and action, Tales of the Dervishes, The Dermis Probe, The Elephant in the Dark, The Englishman Handbook, Idries Shah Antology, The Magic Monastery, The natives are restless, wisdom of the Idiots PDF.

Idries Shah 27 Books Collection : A Perfumed Scorpion, A Veiled Gazelle, Caravan of Dreams, Darkest England, Destination Mecca, Evenings with Idries Shah, Knowing How to Know, Learning How to Learn, Letters and Lectures of Idries Shah, Neglected aspects of Sufi study, Observations, Oriental Magic, Reflections, Seeker after Truth, Special Illumination, Special Problems in the study of Sufi ideas, Sufi thought and action, Tales of the Dervishes, The Dermis Probe, The Elephant in the Dark, The Englishman Handbook, Idries Shah Antology, The Magic Monastery, The natives are restless, wisdom of the Idiots PDF.

2022 · PDF

The travels of Capts. Lewis and Clarke from St. Louis, by way of the Missouri and Columbia rivers, to the Pacific ocean; performed in the years 1804, 1805 & 1806, by order of the government of the United States. Containing delineations of the manners, customs, religion, &c. of the Indians, comp. from various authentic sources, and original documents, and a summary of the Statistical view of the Indian nations, from the official communication of Meriwether Lewis. Illustrated with a map of the country, inhabited by the western tribes of Indians

The travels of Capts. Lewis and Clarke from St. Louis, by way of the Missouri and Columbia rivers, to the Pacific ocean; performed in the years 1804, 1805 & 1806, by order of the government of the United States. Containing delineations of the manners, customs, religion, &c. of the Indians, comp. from various authentic sources, and original documents, and a summary of the Statistical view of the Indian nations, from the official communication of Meriwether Lewis. Illustrated with a map of the country, inhabited by the western tribes of Indians

1809 · PDF

Professional Linux kernel architecture ''Wrox programmer to programmer''--Cover. - ''What you are reading right now is the result of an evolution over more than seven years: After two years of writing, the first edition was published in German by Carl Hanser Verlag in 2003. It then described kernel 2.6.0. The test was used as a basis for the low-level design documentation for the EAL4+ security evaluation of Red Hat Enterprise Linux 5, requiring to update it to kernel 2.6.18 (if the EAL acronym does not mean anything to you, then Wikipedia is once more your friend). Hewlett-Packard sponsored the translation into English and has, thankfully, granted the rights to publish the result. Updates to kernel 2.6.24 were then performed specifically for this book''--P. ix

Professional Linux kernel architecture ''Wrox programmer to programmer''--Cover. - ''What you are reading right now is the result of an evolution over more than seven years: After two years of writing, the first edition was published in German by Carl Hanser Verlag in 2003. It then described kernel 2.6.0. The test was used as a basis for the low-level design documentation for the EAL4+ security evaluation of Red Hat Enterprise Linux 5, requiring to update it to kernel 2.6.18 (if the EAL acronym does not mean anything to you, then Wikipedia is once more your friend). Hewlett-Packard sponsored the translation into English and has, thankfully, granted the rights to publish the result. Updates to kernel 2.6.24 were then performed specifically for this book''--P. ix

2008 · PDF