
书: https://pan.baidu.com/s/1hMg-9fMkkzntAfHoLymQMA?pwd=2tx9
笔记如下:
- Linux系统调用:通过
open()、read()、write()、close()等函数直接与内核交互。 - 文件I/O操作:使用
fopen()、fgets()、fprintf()等标准C库函数进行文件读写。 - 进程管理:
fork()创建子进程,exec()系列函数替换进程映像,wait()等待子进程结束。 - 进程间通信(IPC):管道(
pipe())、信号(signal())、共享内存(shmget())、消息队列(msgget())。 - 信号处理:使用
signal()或sigaction()捕获和处理信号(如SIGINT、SIGTERM)。 - 线程编程:POSIX线程(
pthread_create()、pthread_join())实现多线程并发。 - 线程同步:互斥锁(
pthread_mutex_t)、条件变量(pthread_cond_t)避免竞态条件。 - 套接字编程:
socket()、bind()、listen()、accept()、connect()实现网络通信。 - 守护进程:通过
fork()、setsid()、关闭文件描述符等步骤创建后台守护进程。 - 文件系统操作:
stat()获取文件属性,chmod()修改权限,mkdir()创建目录。 - 动态链接库:
dlopen()、dlsym()加载和调用共享库函数。 - 内存管理:
malloc()、free()动态分配内存,mmap()内存映射文件。 - 错误处理:检查
errno变量及使用perror()、strerror()输出错误信息。 - 终端控制:
termios结构体及tcsetattr()配置终端行为(如禁用回显)。 - 时间函数:
time()获取系统时间,localtime()转换时间格式,sleep()延迟执行。 - 正则表达式:
regcomp()、regexec()进行正则匹配。 - 数据库接口:通过SQLite或MySQL C API(如
sqlite3_open())操作数据库。 - GTK+图形编程:使用GTK库(如
gtk_init()、gtk_window_new())开发GUI应用。 - 系统日志:
syslog()函数将日志写入系统日志文件(如/var/log/messages)。 - 安全编程:避免缓冲区溢出(如使用
strncpy()替代strcpy()),最小权限原则。