linux环境高级编程第三版中文pdf下载,linux环境高级编程 百度云
Linux环境下的高级编程
Linux环境下的高级编程
2011-08-20 14:09
一、课程目标本课程涵盖了Linux系统编程的几个主要方面。通过本课程,学生将具备以下能力:
了解Linux系统调用和类库的区别;熟悉文件I/O、文件和目录、进程管理、IPC、信号、时间和定时器编程。二。参与要求本课程的参与者必须具备以下能力:
本课程采用C语言授课,因此需要学生具备良好的C语言基础;熟练使用常用Linux命令;熟练使用gcc、gdb和编写makefile;最好能熟练使用vi、emacs等文本编辑器中的一种。三。课程实践环境学生自带计算机操作系统:GNU/Linux 2.6(推荐Redhat AS 5或Ubuntu和Fedora)编译器:GCC v4.1和GDB v7.0可选IDE:Eclipse CDT IV。课程大纲本课程由以下部分组成:
1、准备UNIX历史和标准UNIX的知识;BSD系统V GNU项目;Linux内核POSIX、SUSV3、SUSV4 Linux系统相关概念系统调用和库函数错误处理特性测试宏系统数据类型系统限制和选项(sysconf()、Pathconf())系统参数:/proc文件系统2、文件I/O Linux I/O系统调用与C标准库stdio I/O系统调用的比较:open()、close()、read()、Write()控制I/O缓冲区读写指针的位置:lseek() I/O控制:ioctl()原子操作和数据竞争文件控制:fcntl()文件打开状态标志文件描述符文件和目录文件属性获取文件属性:stat()文件的时间戳文件所有权:chown()文件的操作权限:chmod()目录和连接的文件软硬连接(符号连接)目录迭代目录树当前工作目录(CWD)路径监控文件系统的事件:inotify inotify API inotify事件inotify限制4、进程控制进程属性进程ID(PID)和父进程ID(PPID)进程内存布局栈(Heap)命令行参数和环境变量列表非本地goto(非本地goto) : setjmp()和longjmp()创建和终止进程。进程创建:fork() fork()终止后的多进程数据争用:exit(3)和_exit(2)退出处理器:atexit()等待子进程的退出:wait()、waitid() SIGCHLD信号执行器execve() exec()系列库函数解释脚本文件描述符和exec()信号,exec()执行Shell命令:system()守护进程。创建守护进程的步骤使用SIGHUP信号将进程变成守护进程系统中守护进程的例子:syslog进程权限相关文件/etc/passwd和/etc/groupuserid,和groupid真实的、有效的和保存的set IDs其他组id set-user-id和set-group-id程序获取或修改进程权限。
5.信号信号类型和默认动作信号处理模式信号处理器发送信号信号设置阻塞信号(信号屏蔽)中断和重新执行系统呼叫等待信号6。时间和计时器与时间相关的数据类型POSIX时钟获取当前时间设置当前时间C标准库时间函数睡眠计时器简单计时器:alarm()间隔计时器高级计时器
7.进程间通信、IPC)传统UNIX IPC管道和优先级队列(管道和FIFO) SYSV消息队列(SYSV消息队列)SYSV信号量(SYSV共享内存段)内存映射文件POSIX IPC POSIX IPC优点POSIX消息队列)POSIX信号量)POSIX共享内存段五、课程表课程时间:3天,每天6小时。具体安排如下:
1 1 1-初步知识2-文件I/O 3-文件和目录day 2 4-过程控制5-信号6-定时器day 3 7-进程间通信的课程回顾和总结6。有关可用的课程资源,请参阅:教学资源。