O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Professional C Programming LiveLessons (Video Training), Part I: Writing Robust, Secure, and Reliable Code

Video Description

Professional C Programming LiveLessons, Part I: Writing Robust, Secure, and Reliable Codeby Robert C. Seacord provides an in depth explanation of how to use common C language features to produce robust, secure, and reliable code. The video is designed for developers who have completed an introductory course in C language programming. In six lessons, Professional C Programming, Part I shows developers how to perform common C language programming tasks correctly while avoiding programming errors that are not always detected or reported by the compiler.

About the Author:

Robert C. Seacordis a computer security specialist and writer. He is the author of The CERT C Secure Coding Standard and Secure Coding in C and C++as well as other books on computer security, legacy system modernization, and component-based software engineering. He has a Bachelor in computer science from Rensselaer Polytechnic Institute.

Robert C. Seacord leads the Secure Coding Initiative at CERT, located in Carnegie Mellon University’s Software Engineering Institute (SEI) in Pittsburgh, PA. Seacord is an adjunct professor in both the School of Computer Science and the Information Networking Institute at Carnegie Mellon University.

Seacord started programming professionally for IBM in 1982, working in communications and operating system software, processor development, and software engineering. Robert also has worked at the X Consortium, where he developed and maintained code for the Common Desktop Environment and the X Window System.

Seacord is a technical expert for the ISO/IEC JTC1/SC22/WG14 international standardization working group for the C programming language.

Table of Contents

  1. Introduction
    1. Introduction to Professional C Programming LiveLessons 00:03:31
  2. Lesson 1: Integer Types
    1. Learning Objectives 00:00:49
    2. Introduction to integer types 00:04:00
    3. Unsigned integers 00:21:16
    4. Signed integers 00:17:46
    5. Character types 00:07:26
    6. size_t 00:13:47
    7. ptrdiff_t, intmax_t and uintmax_t 00:04:43
    8. Summary 00:01:19
  3. Lesson 2: Integer Conversions
    1. Learning Objectives 00:00:47
    2. Conversion rank, promotions, and the usual arithmetic conversions 00:13:44
    3. Conversions to unsigned types 00:08:05
    4. Conversions to signed types 00:07:29
    5. Summary 00:01:00
  4. Lesson 3: Integer Operations
    1. Learning Objectives 00:00:55
    2. Assignment 00:11:49
    3. Addition and subtraction 00:05:27
    4. Multiplication and upcasting 00:13:58
    5. Division and remainder 00:07:46
    6. Shifting 00:14:06
    7. Summary 00:01:27
  5. Lesson 4: Characters, Arrays, and Strings
    1. Learning Objectives 00:00:48
    2. Sizing arrays 00:06:35
    3. String literals and their use as array initializers 00:03:22
    4. Character types and what they are used for 00:08:25
    5. Summary 00:01:21
  6. Lesson 5: String Handling
    1. Learning Objectives 00:01:23
    2. Caller allocates, caller frees 00:11:22
    3. Bounds-checking interfaces 00:15:19
    4. Callee allocates, caller frees (POSIX) 00:05:26
    5. Summary 00:00:58
  7. Lesson 6: Optimization
    1. Learning Objectives 00:01:25
    2. Undefined behaviors and the “as if” rule 00:05:38
    3. Constant folding 00:03:47
    4. Algebraic simplification and pointer arithmetic 00:10:56
    5. Hoisting of loop-invariant computations 00:10:11
    6. Dead-code removal 00:22:39
    7. Aliasing 00:27:26
    8. Summary 00:02:16
  8. Summary
    1. Summary of Professional C Programming LiveLessons 00:01:27