自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 进程间通信—IPC对象通信

效率:共享内存是进程间通信效率最高的方式。操作流程:key值创建方式: 1.IPC_PRIVATE 固定的私有键值,其值等于 0x0,一般用于有亲缘关系的进程间使 用。 2.ftok()创建临时键值。函数原型:功能:通过该函数可以将pathname指定的路径用来以proj_id生成唯一的临时键值。参数:pathname 路径+名称->任意文件,只要不会被删除重建即可。

2024-08-13 21:06:00 621

原创 进程间通信—管道通信

1.古老的通信方式无名管道(Pipes)只能用于有亲缘关系的进程间通信。数据流是单向的,通常用于父子进程间。有名管道(Named Pipes,FIFO)可以用于任意两个进程间通信,即使它们没有亲缘关系。允许不相关的进程以先进先出(FIFO)的方式发送和接收数据。信号(Signals)一种异步通信机制,用于通知进程有某些事件发生。信号可以在任何时候发送给进程,接收进程可以捕获并处理信号。2.IPC对象通信消息队列(Message Queues)用于进程间的消息传递。

2024-08-12 23:09:36 935

原创 操作系统—线程(2)线程控制—互斥与同步

互斥概念:互斥是多线程中对临界资源的排他性访问;互斥机制通过互斥锁来保证临界资源的访问控制。同步概念:同步是有一定先后顺序的对资源的排他性访问,互斥锁相比虽同样可以控制排他性访问,但没有次序。

2024-08-09 20:33:13 623

原创 操作系统—线程(1)

定义:线程是程序执行的最小单位,是轻量级进程,通常用于在一个进程中并行执行多个任务。资源分配:进程是系统中最小的资源分配单位,而线程则是系统中最小的执行单位。

2024-08-08 21:06:53 611

原创 操作系统—进程(2)

子进程的创建:子进程是通过fork()系统调用从父进程创建的。fork()调用会复制父进程的地址空间,包括代码段、数据段、堆和栈,来创建一个新的进程。这些函数用于在调用它们的进程中执行一个新的程序。执行exec函数后,当前进程的映像会被新程序替换,从新程序的启动代码开始执行。如果exec成功执行,它不会返回;如果出错,返回-1并设置errno。2.exec。

2024-08-07 20:58:58 543

原创 操作系统—进程(1)

进程是一个程序执行的过程,会去分配内存资源,cpu的调度。pcb(process control block):进程控制块是一个结构体。

2024-08-06 23:44:16 862

原创 Linux下目录文件操作

* protection */(* 权限信息) unsigned int/* number of hard links */(* 硬链接数)unsigned int/* user ID of owner */ (*UID 用户id)unsigned int/* group ID of owner */(*group 所在组ID)unsigned int/* total size, in bytes */(*文件的大小)// long unsigned int。

2024-07-29 22:10:49 528

原创 man手册查找的简单使用方法

2)man xxx == man 1 xxx ===>查看当前xxx命令。NAME: 函数名的介绍 以及 功能的简要说明。DESCRIPTION: 函数的使用的细节 ,参数,返回值。3)man 2 xxx ===>查看xxx对应的系统调用函数。4)man 3 xxx ===》查看xxx对应的标准库函数。如果没有命令则直接man xxx 会显示其函数。1)man man ==>所有man的帮助。SYNOPSIS: 头文件+函数原型。r:递归在每一个目录中找。

2024-07-29 21:14:25 306

原创 Linux应用编程(高级编程)

----------------------------[硬盘]c -- character -- 字符设备文件 --- 鼠标 ---- ls -l /dev/input/p -- pipe -- 管道文件 --- 实现操作系统中 进程间的一些 信息交换(通信)b -- block -- 块设备文件 --- 硬盘 ---- ls -l /dev/sda。s -- socket -- 套接字文件 --- 网络的时候 (进程间的通信)

2024-07-29 20:57:57 993

原创 shell

Brain Fox作为FSF的员工,首次开始工作是在1988年的1月10号,一年之后,发布了.99的测试版本。-b 块设备文件 block test -b /dev/usb0 --- 硬盘。$n n 为数字,$0 代表命令本身,$1〜$9 代表第 1〜9 个参数,10 以上的参数需要用大括号包含, 如${10}$$:当前shell的PID --- $$ 21694 //进程的概念提示。进程 ---- 进行中程序(process id--进程的身份证号)

2024-07-15 22:50:14 263

原创 益智小游戏----“2048“(Linux下C语言初学两周版)

在Linux下使用C语言制作2048小游戏。

2024-07-01 22:36:41 584

原创 指针(Day10)

/因为左右两边类型不一致,p是int * //int * 表示 是一个 存放int类型数据的 空间的地址。//a 是一个float类型的变量, &a 表示获得了这块空间的地址,这个值的类型是float *//表示的p中存放的 地址编号 所代表的那块空间 中要存放的数据的类型。//指针是一种数据类型, p是什么类型 => int * //int型的指针(地址)类型。//p指向的数据类型是int类型 //p指向的类型 基类型 (目标类型)//p变量,可以存放的是 int类型的 地址。

2024-05-27 21:12:19 533

原创 函数(二)(Day11)

因为传的是数组名,而数组名是数组首元素的地址,所以相当于将数组空间的地址传给了被调函数,而被调函数,通过数组下标运算,可以直接访问到了主调函数中对应数组空间的数据。形式上,保持一致,被调函数中 就可以 访问到主调函数中 数组的数据。所以,数组传参的这种方式,可以实现,被调函数修改主调函数中的数据。1. 将n-1格盘子, 从 A(起始柱子) 移动 C 辅助柱子。2. 将第n格盘子,从A (起始柱子) 移动到B (目标柱子)1. 将n-1格盘子, 从 A 起始柱 移动 B 辅助柱子。int a[10];

2024-05-23 21:52:18 751 1

原创 函数(Day10)

6.如果函数没有返回值,此时返回值类型说明符 可以写成 void //空 -没有。2.返回的结果,与返回值类型说明符,之间类型不一致时,以返回值类型说明符的类型为准。返回值的类型标识符 //用来说明 该函数(function)带出来数据的类型。问题n的解决,需要问题n-1的解决,往前推,直到,有一个明确的结果。//step2: 考虑 这个函数,需要用到哪些数据 --- 形式参数。返回值的类型标识符 函数名(形式参数) //函数头 ---head。return 语句 //表示,从函数中返回(就是函数结果)

2024-05-23 21:28:06 483 1

原创 数组(二)(Day9)

while() //循环 //循环的条件 s1[i] == s2[i] s1[i]!//一维数组 有5个 char[10] 这种类型的数据。//一个存放了 3个 char[4]这种类型的一维数组。//一维数组,这个一维数组的元素类型 int[3]a[0] a[l] a[2],每个元素又是一个包含4个元素的一维数组。

2024-05-23 21:17:49 337 1

原创 数组(Day8)

1|000 0000 0000 0000 0000 0000 0000 0000 //负0。'h''e''l''l''o''\0' //字符串长度指的是 '\0'前面字符的个数。// 0 1 2 3 4 5 6 7 8 9 //下标。(3).[常量表达式]--- [] //定义时,表示此时定义的是一个数组。

2024-05-16 02:01:52 816

原创 流程控制(二)(Day7)

do-while --先执行 后判断 //循环体始终都会被执行到,最少是一次。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;语法 while后面,不要加分号 //除非就是要写一个空语句。//循环过程中要对i代表的数字进行拆分,计算和判断。所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数。(1)****goto //可以构造循环 ,本身并不是循环语句。for( 表达式 1;直到,表达式判断为假,while结束(循环结束)含义: 结束本次循环,继续下一次循环。

2024-05-13 23:50:49 913 1

原创 流程控制(二)(Day6)

(1).能被4整除,但是 不能被100整除 //2022 2008 2024。2.switch 中的 表达式 必须是一个整型表达式 或者是与整型兼容的类型的表达式。(2).能被400整除 //世纪年份 -- 2000 1900 2100。根据 表达式的结果,去匹配 case后面的 常量表达式的结果,否则,继续 判断 表达式2,如果表达式2为真 ,则,执行 语句2。否则,继续 判断 表达式3,如果表达式3为真 ,则,执行 语句3。则,表示if语句结束,程序继续往下执行if后面的语句。

2024-05-11 20:45:25 541 1

原创 输入输出(二)+流程控制(Day5)

/此时a被当做地址用了,这不是一个有效的地址---访问到了 不能访问的空间(非法内存)//... 表示可变参数 --参数的数量可以变。//如果输入的数据,已经匹配了3个字符宽度,则表示scanf结束。如果数据本身宽度 < m //输出结果默认右对齐,前面默认补空格,前面空出来的还可以补0。%lf --- 表示将输入的 浮点形式的数据,转换为double类型。// %Lf // 表述输出 long double 注意 L 要大写。(1) m //宽度 -- 在输入时,表示指定了输入数据的宽度。

2024-05-10 19:54:01 884 1

原创 数据类型,运算符和表达式(三)+输入输出(Day4)

/这里的a本身是左值,但是不能做++a,a++,原因是const修饰后,a成了只读变量)lvalue (locationable value) //可定位的 ---可以获取到它的地址。//形参 --形式参数 ---本身是一个变量。工具 --- c语言相关 函数库 提供的函数 (function-功能)注:%50---->[0,49]---->+50---->[50,99]// 能放在 = 左边的值,叫做左值 --- 变量。&a //& 表示取地址 ---获取a对应的内存单元的编号(地址)

2024-05-09 19:47:53 897

原创 数据类型,运算符和表达式(二)(Day3)

符号位(1bits)|指数位(阶码位)(11bits)|尾数位(52bits)符号位(1bits)|指数位(阶码位)(8bits)|尾数位(23bits)所谓的’a’字符存到计算机,实际上存的是’a’字符对应的ASCII码的值(二进制形式)阶码偏移单精度127。0|000 0000|0000 0000|0000 0000|0000 0000 //最小值0。0000 0000|0000 0000|0000 0000|0000 0000 //0最小值。//规定只有这个值,符号位也是数值位//-32768。

2024-05-08 20:29:41 940

原创 Linux系统开发流程,数据类型,运算符和表达式(Day2)

2024-05-07 19:28:17 106

原创 Linux 指令练习

2024-05-06 20:31:37 118

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除