We use cookies to ensure you get the best experience on our website. Please review our cookie policy for details.

Advanced Programming in the UNIX Environment

(ADV-PROG-UNIX.AP1) / ISBN : 978-1-64459-512-1
Lessons
Lab
AI Tutor (Add-on)
Get A Free Trial

About This Course

Skills You’ll Get

1

Preface

  • Introduction
  • Changes from the Second Edition
2

UNIX System Overview

  • Introduction
  • UNIX Architecture
  • Logging In
  • Files and Directories
  • Input and Output
  • Programs and Processes
  • Error Handling
  • User Identification
  • Signals
  • Time Values
  • System Calls and Library Functions
  • Summary
  • Exercises
3

UNIX Standardization and Implementations

  • Introduction
  • UNIX Standardization
  • UNIX System Implementations
  • Relationship of Standards and Implementations
  • Limits
  • Options
  • Feature Test Macros
  • Primitive System Data Types
  • Differences Between Standards
  • Summary
  • Exercises
4

File I/O

  • Introduction
  • File Descriptors
  • open and openat Functions
  • creat Function
  • close Function
  • lseek Function
  • read Function
  • write Function
  • I/O Efficiency
  • File Sharing
  • Atomic Operations
  • dup and dup2 Functions
  • sync, fsync, and fdatasync Functions
  • fcntl Function
  • ioctl Function
  • /dev/fd
  • Summary
  • Exercises
5

Files and Directories

  • Introduction
  • stat, fstat, fstatat, and lstat Functions
  • File Types
  • Set-User-ID and Set-Group-ID
  • File Access Permissions
  • Ownership of New Files and Directories
  • access and faccessat Functions
  • umask Function
  • chmod, fchmod, and fchmodat Functions
  • Sticky Bit
  • chown, fchown, fchownat, and lchown Functions
  • File Size
  • File Truncation
  • File Systems
  • link, linkat, unlink, unlinkat, and remove Functions
  • rename and renameat Functions
  • Symbolic Links
  • Creating and Reading Symbolic Links
  • File Times
  • futimens, utimensat, and utimes Functions
  • mkdir, mkdirat, and rmdir Functions
  • Reading Directories
  • chdir, fchdir, and getcwd Functions
  • Device Special Files
  • Summary of File Access Permission Bits
  • Summary
  • Exercises
6

Standard I/O Library

  • Introduction
  • Streams and FILE Objects
  • Standard Input, Standard Output, and Standard Error
  • Buffering
  • Opening a Stream
  • Reading and Writing a Stream
  • Line-at-a-Time I/O
  • Standard I/O Efficiency
  • Binary I/O
  • Positioning a Stream
  • Formatted I/O
  • Implementation Details
  • Temporary Files
  • Memory Streams
  • Alternatives to Standard I/O
  • Summary
  • Exercises
7

System Data Files and Information

  • Introduction
  • Password File
  • Shadow Passwords
  • Group File
  • Supplementary Group IDs
  • Implementation Differences
  • Other Data Files
  • Login Accounting
  • System Identification
  • Time and Date Routines
  • Summary
  • Exercises
8

Process Environment

  • Introduction
  • main Function
  • Process Termination
  • Command-Line Arguments
  • Environment List
  • Memory Layout of a C Program
  • Shared Libraries
  • Memory Allocation
  • Environment Variables
  • setjmp and longjmp Functions
  • getrlimit and setrlimit Functions
  • Summary
  • Exercises
9

Process Control

  • Introduction
  • Process Identifiers
  • fork Function
  • vfork Function
  • exit Functions
  • wait and waitpid Functions
  • waitid Function
  • wait3 and wait4 Functions
  • Race Conditions
  • exec Functions
  • Changing User IDs and Group IDs
  • Interpreter Files
  • system Function
  • Process Accounting
  • User Identification
  • Process Scheduling
  • Process Times
  • Summary
  • Exercises
10

Process Relationships

  • Introduction
  • Terminal Logins
  • Network Logins
  • Process Groups
  • Sessions
  • Controlling Terminal
  • tcgetpgrp, tcsetpgrp, and tcgetsid Functions
  • Job Control
  • Shell Execution of Programs
  • Orphaned Process Groups
  • FreeBSD Implementation
  • Summary
  • Exercises
11

Signals

  • Introduction
  • Signal Concepts
  • signal Function
  • Unreliable Signals
  • Interrupted System Calls
  • Reentrant Functions
  • SIGCLD Semantics
  • Reliable-Signal Terminology and Semantics
  • kill and raise Functions
  • alarm and pause Functions
  • Signal Sets
  • sigprocmask Function
  • sigpending Function
  • sigaction Function
  • sigsetjmp and siglongjmp Functions
  • sigsuspend Function
  • abort Function
  • system Function
  • sleep, nanosleep, and clock_nanosleep Functions
  • sigqueue Function
  • Job-Control Signals
  • Signal Names and Numbers
  • Summary
  • Exercises
12

Threads

  • Introduction
  • Thread Concepts
  • Thread Identification
  • Thread Creation
  • Thread Termination
  • Thread Synchronization
  • Summary
  • Exercises
13

Thread Control

  • Introduction
  • Thread Limits
  • Thread Attributes
  • Synchronization Attributes
  • Reentrancy
  • Thread-Specific Data
  • Cancel Options
  • Threads and Signals
  • Threads and fork
  • Threads and I/O
  • Summary
  • Exercises
14

Daemon Processes

  • Introduction
  • Daemon Characteristics
  • Coding Rules
  • Error Logging
  • Single-Instance Daemons
  • Daemon Conventions
  • Client–Server Model
  • Summary
  • Exercises
15

Advanced I/O

  • Introduction
  • Nonblocking I/O
  • Record Locking
  • I/O Multiplexing
  • Asynchronous I/O
  • readv and writev Functions
  • readn and writen Functions
  • Memory-Mapped I/O
  • Summary
  • Exercises
16

Interprocess Communication

  • Introduction
  • Pipes
  • popen and pclose Functions
  • Coprocesses
  • FIFOs
  • XSI IPC
  • Message Queues
  • Semaphores
  • Shared Memory
  • POSIX Semaphores
  • Client–Server Properties
  • Summary
  • Exercises
17

Network IPC: Sockets

  • Introduction
  • Socket Descriptors
  • Addressing
  • Connection Establishment
  • Data Transfer
  • Socket Options
  • Out-of-Band Data
  • Nonblocking and Asynchronous I/O
  • Summary
  • Exercises
18

Advanced IPC

  • Introduction
  • UNIX Domain Sockets
  • Unique Connections
  • Passing File Descriptors
  • An Open Server, Version 1
  • An Open Server, Version 2
  • Summary
  • Exercises
19

Terminal I/O

  • Introduction
  • Overview
  • Special Input Characters
  • Getting and Setting Terminal Attributes
  • Terminal Option Flags
  • stty Command
  • Baud Rate Functions
  • Line Control Functions
  • Terminal Identification
  • Canonical Mode
  • Noncanonical Mode
  • Terminal Window Size
  • termcap, terminfo, and curses
  • Summary
  • Exercises
20

Pseudo Terminals

  • Introduction
  • Overview
  • Opening Pseudo-Terminal Devices
  • pty_fork Function
  • pty Program
  • Using the pty Program
  • Advanced Features
  • Summary
  • Exercises
21

A Database Library

  • Introduction
  • History
  • The Library
  • Implementation Overview
  • Centralized or Decentralized?
  • Concurrency
  • Building the Library
  • Source Code
  • Performance
  • Summary
  • Exercises
22

Communicating with a Network Printer

  • Introduction
  • The Internet Printing Protocol
  • The Hypertext Transfer Protocol
  • Printer Spooling
  • Source Code
  • Summary
  • Exercises
A

Appendix B. Miscellaneous Source Code

  • B.1. Our Header File
  • B.2. Standard Error Routines

1

File I/O

  • Using the open, openat, and lseek Functions
  • Performing File Operations
  • Using File Synchronization Functions
2

Files and Directories

  • Retrieving File Metadata Using System Calls
  • Managing File Access Permissions
  • Using the umask Function
  • Managing Ownership of Files and Directories
  • Managing and Analyzing Files
  • Managing Files and Directories
  • Managing File Timestamp
  • Creating and Reading Symbolic Links
  • Performing File Timestamp Operations
  • Reading and Managing Directories
  • Traversing the File Hirerachy
3

Standard I/O Library

  • Using the fwide Function
  • Working with Standard Input, Output, and Error
  • Performing File Stream Operations
  • Exploring File I/O Techniques
  • Positioning a Stream
  • Formatting I/O
  • Temporary Files
  • Memory streams
4

System Data Files and Information

  • Logging in and Identifying the System
5

Process Environment

  • Creating the main Function
  • Using Command-Line Arguments
  • Allocating dynamic  memory
  • Handling Non-Local Jumps and Resource Limits
6

Process Control

  • Identifying Processes
  • Creating and Terminating processes
  • Race Conditions in Process Synchronization
  • Using the exec Function
  • Managing Processes and User Identification
7

Process Relationships

  • Using the setsid and getsid Functions
  • Using the tcgetpgrp, tcsetpgrp, and tcgetsid Functions
8

Signals

  • Using alarm and pause Functions
  • Using the kill and raise Functions
  • Using the kill and raise Functions

Advanced Programming in the UNIX Environment

$ 382.52

Buy Now

Related Courses

All Course
scroll to top