- 博客(16)
- 收藏
- 关注
原创 IO进程(进程间通信IPC)
进程间通讯IPC1.进程间通信方式1.早期进程间通信无名管道pipe)有名管道(fifo)、信号signal)2.systemVIPC共享内存消息队列信号灯集3.BSD套接字socket)2.无名管道21。
2024-04-17 20:13:58
739
原创 IO进程(线程Thread)
通过互斥锁可以实现互斥机制,主要用来保护临界资源,每个临界资源都由一个互斥锁来保护,线程必须先获得互斥锁才能访问临界资源,访问完资源后释放该锁。是指两个或两个以上的进程或线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。4、循环等待,即存在一个等待队列:P1占有P2的资源,P2占有P3的资源,P3占有P1的资源。共享的资源:可执行的指令、静态数据、进程中打开的文件描述符、信号处理函数、当前工作目录、用户ID、用户组ID。进程的地址空间相互独立。
2024-04-16 19:09:10
678
原创 IO进程(获取文件属性 + 目录操作 + 库)
当使用别人的函数时除了包含头文件以外还需要有库头文件也就是.h结尾的文件,其中包含:宏定义、结构体、联合体、枚举的定义、函数声明、重命名、其他头文件、条件编译、外部引用库:把一些常用的函数的目标文件打包在一起,提供相应的函数接口,便于程序员使用。本质上来说库是一种可执行代码的二进制形式文件。库的分类静态库和动态库,本质区别时代码载入的时刻不同。静态库静态库在程序编译时会被复制到目标代码中,以.a结尾。优点:程序运行的时候不再需要静态库,运行时无需加载库,运行速度快,可移植性好。
2024-04-14 20:10:13
682
原创 IO进程(标准IO)
无名管道(pipe)、有名管道(fifo)、信号(signal)、共享内存(shared memory)、信号灯集(semphore set)、消息队列(message queue)综上:当我们每次要打印数据时,并不是将数据直接发送给标准输出设备,也就是并直接发送给显示器,而是将要打印的数据先存放到。的方式打开文件时,写只能在末尾进行追加,定位操作是无法改变写的位置,但是可以改变读的位置。:读和追加,文件不存在创建,存在追加,读文件流定位到文件开头,写文件流定位到文件末尾。如果后面还有字符则返回。
2024-04-10 19:34:18
768
原创 C语言基础知识(七)
在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等。(提高程序的移植性)在32位系统下,默认的value值为4字节,判断结构体中类型最大成员的字节大小,和默认的value值进行比较,按小的数进行对齐。结构体成员进行对齐时遵循地址偏移量是成员类型大小的整数倍,double类型数据存放在4字节的整数倍上。的结构体,包含姓名,学号,班级,分数。的结构体数组,包含学号,姓名,分数。
2024-03-19 18:45:09
690
原创 C语言基础知识(六)
形参:函数定义时,定义的形参变量,是形式上存在的参数,只有在调用函数时才开辟内存空间。练习:写一个函数,求字符串中某个字符出现的次数(例如:hello的l出现了2次)定义的函数可以直接写在主函数上边,也可写在下边,注意:写在下边时,要提前声明。注意return的返回值类型要和定义函数时的数据类型保持一致;不需要返回值时,数据类型可以用void表示。实参:调用函数时,实际传递的值。函数调用:函数名(实参列表);数据类型 函数名();不需要参数,也不需要返回值。函数调用:函数名();
2024-03-18 18:59:08
399
原创 C语言基础知识(五)
+p有赋值的动作,指针向高地址方向移动一个数据单位int 4字节;char 1字节)指针的指向发生改变p+2 /指针访问高地址方向第1个元素指针的指向不发生改变同一个数组,两个地址之间的差值=相差元素个数关系运算同一个数组下比较才有意义高地址低地址练习hD。
2024-03-15 19:13:54
602
原创 C语言基础知识(四)
5个数比较4轮第一轮45321435214325143215第二轮342153241532145第三轮2314521345第四轮12345。
2024-03-13 18:52:33
802
原创 C语言基础知识(三)
数组特点:内存连续数据类型相同分类:一维数组格式:存储类型 数据类型 数组名[元素个数]int arr[5];例:int a[5]={2,3,5,8,9};访问时,索引从0开始数组名也是数组首地址字节大小int a[5];4*5=20初始化完全初始化部分初始化未初始化部分值为未初始化int b[33];值为随机值b[0]=9;
2024-03-12 19:03:55
1017
原创 C语言基础知识(二)
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。判断表达式1是否成立,如果成立执行代码段1,不成立执行代码段2;}else if(表达式2)switch (表达式)
2024-03-08 18:47:08
245
原创 C语言基础知识(一)
标识符标识符命名规则:由字母、数字、下划线组成开头不能是数字不能和关键字重复最好见名知意练习:x y sum a100 _A7b_3x3’ax*yb.8while运算符算术运算符、逻辑运算符、位运算符、关系运算符、赋值运算符、三目运算符算术运算符整数相除,结果会向下取整int a=5/2;//2//2.000000//2.500000//强制转换,只在当前这个位置进行转换//2.500000逻辑运算符&& ||!
2024-03-07 22:04:40
284
原创 Linux常用命令及快捷键
ls = 显示目录下的文件ls -a = 显示目录下以 “.” 开头的文件ls -l = 显示目录下文件的详细信息(英文小写L)ls- R = 显示目录下的文件以及文件内的文件cd "文件名" = 切换到“文件名”目录cd .. = 回到上一级目录pwd = 查看当前位置man "命令" = 查看“命令”介绍df -T = 显示文件系统信息cp "文件名1" "文件名2" = 复制“文件名1”粘贴为“文件名2”(注意要在同一根目录下)
2024-03-02 09:24:32
894
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人