评分9.5
99节课
35390人已学
掌握linux环境下C语言实现文件操作、标准I/O库,多线程编程的技巧,学会在linux平台下编写应用程序,培养学生分析问题和解决问题的实际能力。
课程介绍:
该课程将讲授有关对操作系统的基本操作、liunx环境下的程序设计等。章节目录:
第1章 系统调用
51 信号集合的例子
01 系统调用的概念
52 信号阻塞集的概念
02 Linux操作系统提供的系统调用
53 sigprocmask函数
03 文件描述符
第4章 无名管道_命名管道
04 open_close函数
54 无名管道的概念
05 write函数
55 无名管道的创建
06 read函数
56 无名管道通信注意点
07 mycp
57 无名管道读写特点
08 remove函数
58 文件描述符概述
09 系统调用与库函数关系
59 dup文件描述符复制
第2章 进程
60 dup2文件描述符复制
10 进程的概念
61 复制文件描述符后新旧文件描述符特点
11 进程的状态及切换
62 exec之后文件描述特点
12 进程控制块
63 练习expr思路
13 进程号
64 命名管道的概述
14 创建进程fork函数
65 命名管道创建及读写
15 父子进程有自己独立的地址空间
66 验证read阻塞
16 子进程继承父进程缓冲区
67 写进程退出导致read阻塞不住
17 进程的挂起
68 读进程结束写进程再写命名管道写进程收到信号退出
18 wait函数
69 write带阻塞
19 waitpid函数
70 非阻塞方式打开命名管道
20 创建进程扩展
71 命名管道聊天思路
21 孤儿进程
第5章 消息队列
22 进程的终止exit
72 消息队列概述
23 注册进程退出清理函数
73 ftok函数
24 vfork
74 消息队列的创建及打开
25 exec函数族简介
75 消息队列中消息的格式
26 execl函数
76 msgsnd消息发送
27 execlp函数
77 msgrcv接收消息
28 execle函数
78 msgctl消息队列控制
29 execv函数
79 消息队列聊天答案讲解
30 execvp函数
第6章 共享内存
31 execve函数
80 共享内存的概念
32 exec之后进程保留的属性
81 shmget函数
33 system函数
82 shmat共享内存映射
34 system函数的实现
83 shmdt共享内存解除映射关系
第3章 信号
84 shmctl共享内存控制
35 进程间通信的概念
85 共享内存例子
36 信号的概念
第7章 线程
37 kill函数
86 线程的概念
38 alarm函数
87 pthread_create线程创建
39 raise函数
88 线程函数传参
40 abort
89 pthread_join线程等待
41 pause
90 pthred_detach线程分离
42 signal函数1
91 pthread_exit线程退出
43 signal函数返回值
92 pthread_cancel线程取消
44 可重入函数
93 线程取消点
45 信号集的概念
94 线程的取消类型
46 sigemptyset函数
95 注册线程清理函数
47 sigfillset函数
96 线程pthread_exit时执行清理程序
48 sigismember函数
97 线程被取消的时候执行清理函数
49 sigaddset函数
98 pthread_cleanup_pop函数
50 sigdelset函数
99 gtk线程
第1章 - 系统调用
第2章 - 进程
第10节 - 进程的概念
点击播放第11节 - 进程的状态及切换
点击播放第12节 - 进程控制块
点击播放第13节 - 进程号
点击播放第14节 - 创建进程fork函数
点击播放第15节 - 父子进程有自己独立的地址空间
点击播放第16节 - 子进程继承父进程缓冲区
点击播放第17节 - 进程的挂起
点击播放第18节 - wait函数
点击播放第19节 - waitpid函数
点击播放第20节 - 创建进程扩展
点击播放第21节 - 孤儿进程
点击播放第22节 - 进程的终止exit
点击播放第23节 - 注册进程退出清理函数
点击播放第24节 - vfork
点击播放第25节 - exec函数族简介
点击播放第26节 - execl函数
点击播放第27节 - execlp函数
点击播放第28节 - execle函数
点击播放第29节 - execv函数
点击播放第30节 - execvp函数
点击播放第31节 - execve函数
点击播放第32节 - exec之后进程保留的属性
点击播放第33节 - system函数
点击播放第34节 - system函数的实现
点击播放第3章 - 信号
第35节 - 进程间通信的概念
点击播放第36节 - 信号的概念
点击播放第37节 - kill函数
点击播放第38节 - alarm函数
点击播放第39节 - raise函数
点击播放第40节 - abort
点击播放第41节 - pause
点击播放第42节 - signal函数1
点击播放第43节 - signal函数返回值
点击播放第44节 - 可重入函数
点击播放第45节 - 信号集的概念
点击播放第46节 - sigemptyset函数
点击播放第47节 - sigfillset函数
点击播放第48节 - sigismember函数
点击播放第49节 - sigaddset函数
点击播放第50节 - sigdelset函数
点击播放第51节 - 信号集合的例子
点击播放第52节 - 信号阻塞集的概念
点击播放第53节 - sigprocmask函数
点击播放第4章 - 无名管道_命名管道
第54节 - 无名管道的概念
点击播放第55节 - 无名管道的创建
点击播放第56节 - 无名管道通信注意点
点击播放第57节 - 无名管道读写特点
点击播放第58节 - 文件描述符概述
点击播放第59节 - dup文件描述符复制
点击播放第60节 - dup2文件描述符复制
点击播放第61节 - 复制文件描述符后新旧文件描述符特点
点击播放第62节 - exec之后文件描述特点
点击播放第63节 - 练习expr思路
点击播放第64节 - 命名管道的概述
点击播放第65节 - 命名管道创建及读写
点击播放第66节 - 验证read阻塞
点击播放第67节 - 写进程退出导致read阻塞不住
点击播放第68节 - 读进程结束写进程再写命名管道写进程收到信号退出
点击播放第69节 - write带阻塞
点击播放第70节 - 非阻塞方式打开命名管道
点击播放第71节 - 命名管道聊天思路
点击播放第5章 - 消息队列
第6章 - 共享内存
第7章 - 线程
第86节 - 线程的概念
点击播放第87节 - pthread_create线程创建
点击播放第88节 - 线程函数传参
点击播放第89节 - pthread_join线程等待
点击播放第90节 - pthred_detach线程分离
点击播放第91节 - pthread_exit线程退出
点击播放第92节 - pthread_cancel线程取消
点击播放第93节 - 线程取消点
点击播放第94节 - 线程的取消类型
点击播放第95节 - 注册线程清理函数
点击播放第96节 - 线程pthread_exit时执行清理程序
点击播放第97节 - 线程被取消的时候执行清理函数
点击播放第98节 - pthread_cleanup_pop函数
点击播放第99节 - gtk线程
点击播放前面已经说明,要访问内存,就需要相应的地址以表明访问哪块内存,而变量是一个映射,因此变量名就相当于一个地址。对于内存的操作,在一般情况下就只有读取内存中的数值和将数值写入内存(不考虑分配和释放内存),在C++中,为了将一数值写入某变量对应的地址所标识的内存中(出于简便,以后称变量a对应的地址为变量a的地址,而直接称变量a的地址所标识的内存为变量a),只需先书写变量名,后接“=”,再接欲写入的数字以及分号。如下:
在C++中,所有的代码都是通过标识符(Identifier)、表达式(Expression)和语句(Statement)及一些必要的符号(如大括号等)组成,在此先说明何谓标识符。
我们从一开始就一直在利用C++的输入输出在做着各种练习,输入输出是由iostream库提供的,所以讨论此标准库是有必要的,它与C语言的stdio库不同,它从一开始就是用多重继承与虚拟继承实现的面向对象的层次结构,作为一个c++的标准库组件提供给程序员使用。
PWM输出时的Dead Zone(死区)作用是在电平翻转时插入一个时间间隔,避免关闭前一个设备和打开后一个设备时因为开关速度的问题出现同时开启状态而增加负荷的情况(在没有彻底关闭前打开了后一个设备),尤其是电流过大时容易造成短路等损坏设备,如:互补PWM波输出在逆变器(直流转交流)中的应用。
很多时候对nand的操作都是通过主控的nand控制器直接完成,或者更多时候是通过MTD标准操作接口完成读写擦的过程,然而有些细节问题有必要在这里讨论一下.
创建设备类,是为了让mdev知道根据这些信息来创建设备节点,根据/sys来创建,所以从devfs开始,根文件系统就引入了一个/sys目录,/sys/dev下面都是内核加载的驱动的主从设备号