
书: 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()
),最小权限原则。