1)参数:目录名,可以是一个文件路径
2)成功返回目录地址,失败返回NULL,并置位错误码
1)参数:目录指针
2)成功返回struct dirent的指针,也是目录中内容的相关信息,失败返回NULL,如果读到目录结束位置则不更新错误码,如果读取错误,则更新错误码
1)参数:目录指针
2)成功返回0,失败返回-1并置位错误码
库:二进制文件,由.c文件编译而来(文件中无main函数)
库的本质:源程序编译生成二进制文件,使用时更加安全可靠
1)静态体现在:当gcc编译的时候,会将你的主程序和库最终生成一个可执行程序,使用时就不需要在去其他地方找库的位置了,这就导致可执行程序的大小比较大,由于直接将库中的内容封装在可执行程序中了,所以使用起来比较方便,效率较高,缺点是可执行程序体积较大。
2)由.c程序--------编译---------->lib库名.a(二进制文件)
3)使用静态库
---多文件进行编译-----
1)动态体现在: gcc编译程序时,会将你的主程序和库中的函数的符号表编译生成一个可执行程序,当执行可执行程序时,使用该函数时,会通过符号表找到动态库的位置,然后调用该动态库中的函数。效率没有静态库的高,但是,可执行程序的体积较小,多个程序可以共享同一个动态库,所以,动态库又被称为共享库
2)2)由.c程序--------编译---------->lib库名.so(二进制文件)
3)使用动态库
4)当执行可执行文件时,会报如下错误
三个解决办法:
(1)export LD_LIBRARY_PATH=路径
在命令行中,输入指定,更改库的路径,但是该操作只在当前终端有效
(2)将自定义的库放入/uer/lib或者/lib中,也可以进行操作
(3)更改根目录下的sudo vi /etc/ld.so.conf.d/libc.conf,将自定义的库的路径放入该文件中即可
1)进程:正在执行的程序(程序的一次执行过程)
进程就是正在执行的任务,是一个动态的过程,有生命周期,会随着进程的创建而分配资
源,随着进程的消亡而释放资源
2)进程是计算机分配资源的最小单位,每个进程计算机都会为其分配4G的虚拟内存,其中0-
-3G是用户空间,3--4G是内核空间
每个进程都独立拥有自己的O--3G的用户空间,并且所有进程会共享3--4G的内核空间0--3G的用户空间,又分为:栈区、堆区、静态区
3--4G的内核空间中,通过一个task_struct类型的结构体来表述一个进程,进程控制块:pcb
3) 进程之间是相互独立的,可以单独被调度器进行调度系统在调度;进程时的调度原则:时间片轮询,上下文切换
进程:进程是动态的,是程序的一次执行过程,有生命周期,多个进程拥有自己的O--3G的用户空间,共享3--4G的内核空间
程序:程序是静态的,没有所谓的声明周期,只是存储在磁盘上的二进制文件而已
进程控制块(PCB)、数据段、程序段
交互进程:他是有shell脚本控制,可以直接跟用户进行交互,例如:文本编辑器
批处理进程:维护了一个队列,被放在队列中的进程,同一进行操作,但是需要制定进程的优先例如使用gcc编译器一步到位进行编译程序级
守护进程(服务):脱离了终端而存在,会随之系统的启动而运行,随之系统的关闭而消亡,例如:计算机中的服务进程
PID(process id):进程唯一标识,是>=0的整数,每个pid都是独一无二的,且linux系统中,进程数有限
指令:cat/proclsys/kernel/pid_max
PPID:父进程id号
系统启动,默认启动三个进程,进程号为0、1、2
0号进程(idel)︰他是linux系统在启动时,默认启动的第一个进程,这个进程叫做空闲进程,当没有其他进行执行时,才会执行该进程
1号进程(init):该进程是由0进程产生,用于完成进程的初始化工作,当某个进程的父进程结束,那么这个进程就是孤儿进程,孤儿进程会被1号进程收养
2号进程 (kthreadd):该进程也是由0号进程产生,也被称为调度进程,当某个进程的时间片用完后,由2号进行完成调度功能
1)查看进程指令:ps
(1)ps -ef 显示进程间关系
(2)ps -ajx 常用显示进程状态
(3)ps -aux 可显示进程所在计算机资源的百分比
2)给进程发信号的kill指令
(1)kill -l:查看所有信号
(2)kill -信号号 PID :给一个进程发信号
(3)killall 进程名:杀死所用名为进程名的进程
(4)pidof 可执行程序名:查看某个进程的pid
(5)top:动态查看运行的进行状态;htop:带颜色动态查看进程运行状态
(6)pstree:显示进程关系树
3)进程状态
man ps查看
4)进程切换
(1)bg 作业号 :后台运行
作业号:jobs -l
(2)fg 作业号 :前台运行
1)fork函数-------进程创建
(1)功能:通过拷贝父进程得到子进程
(2)返回值: 成功,父进程会得到子进程的pid的值,子进程中得到的是o
失败返回父进程中返回-1,子进程创建失败,并置位错误码