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
isalnum
function - 19.1.2. The
isalpha
function - 19.1.3. The
isblank
function - 19.1.4. The
iscntrl
function - 19.1.5. The
isdigit
function - 19.1.6. The
isgraph
function - 19.1.7. The
islower
function - 19.1.8. The
isprint
function - 19.1.9. The
ispunct
function - 19.1.10. The
isspace
function - 19.1.11. The
isupper
function - 19.1.12. The
isxdigit
function
- 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
exp
functions - 27.6.2. The
exp2
functions - 27.6.3. The
expm1
functions - 27.6.4. The
frexp
functions - 27.6.5. The
ilogb
functions - 27.6.6. The
ldexp
functions - 27.6.7. The
log
functions - 27.6.8. The
log10
functions - 27.6.9. The
log1p
functions - 27.6.10. The
log2
functions - 27.6.11. The
logb
functions - 27.6.12. The
modf
functions - 27.6.13. The
scalbn
andscalbln
functions
- 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
fprintf
function - 36.6.2. The
fscanf
function - 36.6.3. The
printf
function - 36.6.4. The
scanf
function - 36.6.5. The
snprintf
function - 36.6.6. The
sprintf
function - 36.6.7. The
sscanf
function - 36.6.8. The
vfprintf
function - 36.6.9. The
vfscanf
function - 36.6.10. The
vprintf
function - 36.6.11. The
vscanf
function - 36.6.12. The
vsnprintf
function - 36.6.13. The
vsprintf
function - 36.6.14. The
vsscanf
function
- 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
fwprintf
function - 41.2.2. The
fwscanf
function - 41.2.3. The
swprintf
function - 41.2.4. The
swscanf
function - 41.2.5. The
vfwprintf
function - 41.2.6. The
vfwscanf
function - 41.2.7. The
vswprintf
function - 41.2.8. The
vswscanf
function - 41.2.9. The
vwprintf
function - 41.2.10. The
vwscanf
function - 41.2.11. The
wprintf
function - 41.2.12. The
wscanf
function
- 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
iswalnum
function - 42.2.1.2. The
iswalpha
function - 42.2.1.3. The
iswblank
function - 42.2.1.4. The
iswcntrl
function - 42.2.1.5. The
iswdigit
function - 42.2.1.6. The
iswgraph
function - 42.2.1.7. The
iswlower
function - 42.2.1.8. The
iswprint
function - 42.2.1.9. The
iswpunct
function - 42.2.1.10. The
iswspace
function - 42.2.1.11. The
iswupper
function - 42.2.1.12. The
iswxdigit
function
- 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