Skip to content

awinabaab/alx-low_level_programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ALX Low-level Programming

  • This repository is a collection of directories containing a combination ofbash scripts and C programs as part of my Fullstack Software Engineering learning journey with ALX.
  • The files contained in these directories demonstrate my knowledge and understanding of the fundamental principles of computer programming.
  • All scripts and programs were created, compiled and tested on an Ubuntu 20.04 environment.
  • All programs in this repository were compiled using gcc -Wall -Werror -Wextra -pedantic -std=gnu89 [file(s)]

C Basics. Concepts covered include:

  • Program Structure
  • Fundamental Data Types
  • Compiling and Running C programs
  • Header Files

Program control flow. Concepts covered include:

  • Data Types and Variables
  • Declareations, Expressions and Assignment
  • Arithmetic Operators (+, -, /, *, **, %)
  • Relational Operators (<, >, <=, >=, ==, !=)
  • Logical Operators (&&, ||, !)
  • Conditionals (if, else if, else)
  • Loops (for, while, do while)
  • break and continue statements
  • Betty coding standard
  • ASCII
  • Precedence and Associativity of operators
  • What are nested loops and how to use them.
  • What is a function and how do you use functions.
  • What is the difference between a declaration and a definition of a function.
  • What is a prototype.
  • Scope of variables.
  • What are the gcc flags -Wall -Werror -pedantic -Wextra -std=gnu89.
  • What are header files and how to use them with #include.
  • What are nested loops and how to use them.
  • What is a function and how do you use functions.
  • What is the difference between a declaration and a definition of a function.
  • What is a prototype.
  • Scope of variables.
  • What are the gcc flags -Wall -Werror -pedantic -Wextra -std=gnu89.
  • What are header files and how to use them with #include.
  • What are pointers and how to use them.
  • What are arrays and how to use them.
  • What are the differences between pointers and arrays.
  • How to use strings and how to manipulate them.
  • Scope variables.
  • What are pointers and how to use them.
  • What are arrays and how to use them.
  • What are the differences between pointers and arrays.
  • How to use strings and how to manipulate them.
  • Scope variables.
  • What are pointers and how to use them
  • What are multidimensional arrays and how to use them
  • What are the most common C standard library functions to manipulate strings
  • What is recursion
  • How to implement recursionIn what situations you should implemet recursion
  • In what situations you shouldn't implement recursion
  • What is static library, how does it work, how to create one, and how to use it
  • Basic usage of ar, ranlib, nm.
  • How to use arguments passed to your program
  • What are two prototypes of main that you know of, and in which case do you use one or the other
  • How to use attribute((unused)) or (void) to compile function with unused variables or parameters
  • What is the difference between automatic and dynamic allocation
  • What is malloc and free and how to use them
  • Why and when use malloc
  • How to use valgrind to check for memory leak
  • How to use the exit function
  • What are the functions calloc and realloc from the standard library and how to use them
  • What are macros and how to use them
  • What are the most common predefined macros
  • How to include guard your header files
  • What are structures, when, why and how to use them
  • How to use typedef
  • What are function pointers and how to use them
  • What does a function pointer exactly hold
  • Where does a function pointer point to in the virtual memory
  • What are variadic functions
  • How to use va_start, va_arg and va_end macros
  • Why and how to use the const type qualifier
  • When and why using linked lists vs arrays
  • How to build and use linked lists
  • How to use linked lists
  • How to manipulate bits and use bitwise operators
  • What are file descriptors
  • What are the 3 standard file descriptors, what are their purpose and what are their POSIX names
  • How to use the I/O system calls open, close, read and write
  • What are and how to use the flags O_RDONLY, O_WRONLY, O_RDWR
  • What are file permissions, and how to set them when creating a file with the open system call
  • What is a system call
  • What is the difference between a function and a system call
  • What is a doubly linked list
  • How to use doubly linked lists
  • Understand and know how to implement the various operations (deletion, insertion, etc) with doubly linked lists
  • What is a dynamic library, how does it work, how to create one, and how to use it
  • What is the environment variable $LD_LIBRARY_PATH and how to use it
  • What are the differences between static and shared libraries
  • Basic usage nm, ldd, ldconfig
  • What makes a good hash function
  • What is a hash table, how do they work and how to use them
  • What is a collision and what are the main ways of dealing with collisions in the context of a hash table
  • What are the advantages and drawbacks of using hash tables
  • What are the most common use cases of hash tables
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy