UNIX, C, Memory, and Git Review Flashcards

0.0(0)
Studied by 0 people
call kaiCall Kai
Locked
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/33

flashcard set

Earn XP

Description and Tags

Vocabulary and terminology flashcards covering UNIX fundamentals, C memory management, build automation with Makefiles, and version control with Git based on 1XC3 review lecture notes.

Last updated 5:52 AM on 8/12/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

34 Terms

1
New cards

UNIX Philosophy

A design style for software tools that emphasizes writing small programs that do one thing well, work together via pipes, and prefer text streams for easy inspection and redirection.

2
New cards

PATH

An environment variable containing a list of directories that the shell searches to find executable commands.

3
New cards

Standard Streams

The three default communication channels for a program: stdin (input), stdout (normal output), and stderr (error output).

4
New cards

Redirection (>)

A shell operation that sends the stdout of a command to a file, overwriting the file's contents.

5
New cards

Pipes (|)

A mechanism that connects the stdout of the command on the left to the stdin of the command on the right.

6
New cards

Everything Is a File

A defining UNIX concept where resources such as regular files, directories, devices, pipes, and sockets are accessed via a common file-like interface (open, read, write, close).

7
New cards

/dev/null

A special file on UNIX systems that acts as a sink; any data written to it is discarded.

8
New cards

Inode

A data structure that stores metadata about a file; directories specifically store mappings from filenames to these structures.

9
New cards

chmod 754

A command where permissions are set to: 7 (rwx) for the owner, 5 (r-x) for the group, and 4 (r--) for others.

10
New cards

Globbing

Filename expansion performed by the shell before a command runs, using characters like * (all files), ?? (one character), or [ab][ab] (specific characters).

11
New cards

Job Control

The ability to manage multiple running or suspended commands (jobs) using shell commands like jobs, fg, bg, and kill.

12
New cards

Function Prototype

A declaration of a function that tells the compiler the return type and parameter types before the actual function call occurs.

13
New cards

Uninitialized Local Variables

Variables in C that are not automatically set to zero and instead contain indeterminate values from old bits in stack memory.

14
New cards

Stack

A memory region used to store local variables and function call frames during program execution.

15
New cards

Heap

A memory region used for dynamically allocated memory using functions like malloc or calloc.

16
New cards

Pointers

Variables that store memory addresses; the & operator gets an address and the * operator dereferences an address to access the value.

17
New cards

Pass by Value

The default C behavior where a function receives a copy of an argument, meaning changes to the local copy do not affect the original variable in the caller.

18
New cards

Little-endian

A machine architecture where the bytes of a multi-byte value (like an int) are stored in memory with the least significant byte first.

19
New cards

malloc

An allocation function that provides memory on the heap; if it fails, it returns NULL.

20
New cards

Null-terminated string

A character array in C that ends with the null byte ’\0’ to signal the end of the string.

21
New cards

Buffer Overflow

A condition occurring when a program copies more data into a fixed-size array than it can hold, leading to crashes or data corruption.

22
New cards

strncpy

A bounded string function that copies up to nn characters; however, if the source has length at least nn, the result may not be null-terminated.

23
New cards

argc

An integer argument in main that counts the number of command-line arguments, including the program name itself.

24
New cards

strtol

A function used to convert string-based command-line arguments into long integers for arithmetic use.

25
New cards

Arrow Operator (->)

The member access operator used when you have a pointer to a struct, as opposed to the dot operator used for struct objects.

26
New cards

Makefile Target

The output file or goal to be built, followed by its prerequisites and the shell commands (actions) needed to create it.

27
New cards

$@

An automatic variable in Makefiles that represents the name of the current target.

28
New cards

$<

An automatic variable in Makefiles that represents the first prerequisite of the rule.

29
New cards

$^

An automatic variable in Makefiles that represents all the prerequisites of the rule.

30
New cards

Compiler Optimization Flags

Command-line flags ranging from -O0 (no optimization) to -O3 (aggressive) or -Ofast (most aggressive, may ignore strict standards).

31
New cards

CLOCKS_PER_SEC

A constant used to convert the difference between two clock_t values from clock() into seconds for benchmarking.

32
New cards

git status

A Git command used to check which files have changed and which files are currently staged for the next commit.

33
New cards

git commit

A command that records a snapshot of the staged changes into the local repository's history.

34
New cards

Branch

A Git feature that lets a developer move away from the main line of work to experiment or add features without destabilizing the main code.