C Programming Contents#
- 1. Preface
- 2. Introduction
- 2.1. Why C?
- 2.2. History
- 2.3. Comparison with Other Languages
- 2.4. How to Learn Programming
- 2.5. What is a Computer Program?
- 2.6. Attributes of a Program
- 2.7. Tools of Trade
- 2.8. Bits and Bytes
- 2.9. Notes on Number System
- 2.10. Compiling and Executing
- 2.11. Wha GCC Flags Should You Choose?
- 2.12. musl libc
- 3. Basics of C
- 4. Console I/O
- 5. Operators and Expressions
- 5.1. Scope of an Identifier
- 5.2. Linkages of an Identifier
- 5.3. Storage Duration of Objects
- 5.3.1. Usual Arithmetic Conversions
- 5.3.2. Expressions
- 5.3.3. Operators
- 5.3.4. Additive Operators
- 5.3.5. Multiplicative Operators
- 5.3.6. Relational Operators
- 5.3.7. Equality Operators
- 5.3.8. Increment and Decrement Operators
- 5.3.9. Logical Operators
- 5.3.10. Bitwise Operators
- 5.3.11. Bitwise Shift Operators
- 5.3.12. Assignment Operators
- 5.3.13. Grouping parentheses
- 6. Control Flow
- 7. Arrays and Pointers
- 8. Functions
- 9. Structures and Unions
- 10. Strings
- 11. File Input/Output
- 12. Preprocessing Directives
- 13. Bit Manipulation
- 14. Multi-threaded Programming
- 15. Tools for C Programming(gdb and gcc and others)
- 16. The C Standard Library
- 17. Diagnostics
<assert.h> - 18. Complex arithmetic
<complex.h> - 19. Character Handling
<ctype.h>- 19.1. Character classification functions
- 19.1.1. The
isalnumfunction - 19.1.2. The
isalphafunction - 19.1.3. The
isblankfunction - 19.1.4. The
iscntrlfunction - 19.1.5. The
isdigitfunction - 19.1.6. The
isgraphfunction - 19.1.7. The
islowerfunction - 19.1.8. The
isprintfunction - 19.1.9. The
ispunctfunction - 19.1.10. The
isspacefunction - 19.1.11. The
isupperfunction - 19.1.12. The
isxdigitfunction
- 19.1.1. The
- 19.1. Character classification functions
- 20. Errors
<errno.h> - 21. Floating-point environment
<fenv.h> - 22. Characteristics of floating types
<float.h> - 23. Format conversion of integer types
<inttypes.h> - 24. Alternative spellings
<iso646.h> - 25. Sizes of integer types
<limits.h> - 26. Localization <locale.h>
- 27. Mathematics
<math.h>- 27.1. Treatment of error conditions
- 27.2. The FP_CONTRACT pragma
- 27.3. Classification macros
- 27.4. Trigonometric functions
- 27.5. Hyperbolic functions
- 27.6. Exponential and logarithmic functions
- 27.6.1. The
expfunctions - 27.6.2. The
exp2functions - 27.6.3. The
expm1functions - 27.6.4. The
frexpfunctions - 27.6.5. The
ilogbfunctions - 27.6.6. The
ldexpfunctions - 27.6.7. The
logfunctions - 27.6.8. The
log10functions - 27.6.9. The
log1pfunctions - 27.6.10. The
log2functions - 27.6.11. The
logbfunctions - 27.6.12. The
modffunctions - 27.6.13. The
scalbnandscalblnfunctions
- 27.6.1. The
- 27.7. Power and absolute-value functions
- 27.8. Error and gamma functions
- 27.9. Nearest integer functions
- 27.10. Remainder functions
- 27.11. Manipulation functions
- 27.12. Maximum, minimum and positive difference functions
- 27.13. Floating multiply-add
- 27.14. Comparison macros
- 28. Nonlocal jumps
<setjmp.h> - 29. Signal handling
<signal.h> - 30. Alignment
<stdalign.h> - 31. Atomics
<stdatomic.h> - 32. Variable arguments
<stdarg.h> - 33. Boolean type and values
<stdbool.h> - 34. Common definitions
<stddef.h> - 35. Integer types
<stdint.h> - 36. Input/output
<stdio.h>- 36.1. Introduction
- 36.2. Streams
- 36.3. Files
- 36.4. Operations on files
- 36.5. File access functions
- 36.6. Formatted input/output functions
- 36.6.1. The
fprintffunction - 36.6.2. The
fscanffunction - 36.6.3. The
printffunction - 36.6.4. The
scanffunction - 36.6.5. The
snprintffunction - 36.6.6. The
sprintffunction - 36.6.7. The
sscanffunction - 36.6.8. The
vfprintffunction - 36.6.9. The
vfscanffunction - 36.6.10. The
vprintffunction - 36.6.11. The
vscanffunction - 36.6.12. The
vsnprintffunction - 36.6.13. The
vsprintffunction - 36.6.14. The
vsscanffunction
- 36.6.1. The
- 36.7. Character input/output functions
- 36.8. Direct input/output functions
- 36.9. File positioning functions
- 36.10. Error-handling functions
- 37. General utilities
<stdlib.h>- 37.1. Numeric conversion functions
- 37.2. Pseudo-random sequence generation functions
- 37.3. Memory management functions
- 37.4. Communication with the environment
- 37.5. Searching and sorting utilities
- 37.6. Integer arithmetic functions
- 37.7. Multibyte/wide character conversion functions
- 37.8. Multibyte/wide string conversion functions
- 38. String handling
<string.h> - 39. Type-generic math
<tgmath.h> - 40. Date and time
<time.h> - 41. Extended multibyte and wide character utilities
<wchar.h>- 41.1. Introduction
- 41.2. Formatted wide character input/output functions
- 41.2.1. The
fwprintffunction - 41.2.2. The
fwscanffunction - 41.2.3. The
swprintffunction - 41.2.4. The
swscanffunction - 41.2.5. The
vfwprintffunction - 41.2.6. The
vfwscanffunction - 41.2.7. The
vswprintffunction - 41.2.8. The
vswscanffunction - 41.2.9. The
vwprintffunction - 41.2.10. The
vwscanffunction - 41.2.11. The
wprintffunction - 41.2.12. The
wscanffunction
- 41.2.1. The
- 41.3. Wide character input/output functions
- 41.4. General wide string utilities
- 41.5. Wide character time conversion functions
- 41.6. Extended multibyte/wide character conversion utilities
- 42. Wide character classification and mapping utilities
<wctype.h>- 42.1. Introduction
- 42.2. Wide character classification utilities
- 42.2.1. Wide character classification functions
- 42.2.1.1. The
iswalnumfunction - 42.2.1.2. The
iswalphafunction - 42.2.1.3. The
iswblankfunction - 42.2.1.4. The
iswcntrlfunction - 42.2.1.5. The
iswdigitfunction - 42.2.1.6. The
iswgraphfunction - 42.2.1.7. The
iswlowerfunction - 42.2.1.8. The
iswprintfunction - 42.2.1.9. The
iswpunctfunction - 42.2.1.10. The
iswspacefunction - 42.2.1.11. The
iswupperfunction - 42.2.1.12. The
iswxdigitfunction
- 42.2.1.1. The
- 42.2.2. Extensible wide character classification functions
- 42.2.1. Wide character classification functions
- 42.3. Wide character case mapping utilities
- 43. Problems
- 44. License