<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Lon_Sick的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Lon_Sick</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Lon_Sick]]></copyright><item><title><![CDATA[进程间通信—IPC对象通信]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/141171677</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/141171677</guid><author>Lon_Sick</author><pubDate>Tue, 13 Aug 2024 21:06:00 +0800</pubDate><description><![CDATA[效率：共享内存是进程间通信效率最高的方式。操作流程：


key值创建方式：
                   1.IPC_PRIVATE 固定的私有键值，其值等于 0x0，一般用于有亲缘关系的进程间使                            用。
                   2.ftok()创建临时键值。函数原型：功能：通过该函数可以将pathname指定的路径用来以proj_id生成唯一的临时键值。参数：pathname 路径+名称->任意文件，只要不会被删除重建即可。
	 ]]></description><category></category></item><item><title><![CDATA[进程间通信—管道通信]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/141070711</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/141070711</guid><author>Lon_Sick</author><pubDate>Mon, 12 Aug 2024 23:09:36 +0800</pubDate><description><![CDATA[1.古老的通信方式
无名管道（Pipes）
只能用于有亲缘关系的进程间通信。
数据流是单向的，通常用于父子进程间。
有名管道（Named Pipes，FIFO）
可以用于任意两个进程间通信，即使它们没有亲缘关系。
允许不相关的进程以先进先出（FIFO）的方式发送和接收数据。
信号（Signals）
一种异步通信机制，用于通知进程有某些事件发生。
信号可以在任何时候发送给进程，接收进程可以捕获并处理信号。
2.IPC对象通信
消息队列（Message Queues）
用于进程间的消息传递。
]]></description><category></category></item><item><title><![CDATA[操作系统—线程(2)线程控制—互斥与同步]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/141038404</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/141038404</guid><author>Lon_Sick</author><pubDate>Fri, 09 Aug 2024 20:33:13 +0800</pubDate><description><![CDATA[互斥概念：互斥是多线程中对临界资源的排他性访问；互斥机制通过互斥锁来保证临界资源的访问控制。
同步概念：同步是有一定先后顺序的对资源的排他性访问，互斥锁相比虽同样可以控制排他性访问，但没有次序。]]></description><category></category></item><item><title><![CDATA[操作系统—线程(1)]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/141034516</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/141034516</guid><author>Lon_Sick</author><pubDate>Thu, 08 Aug 2024 21:06:53 +0800</pubDate><description><![CDATA[定义：线程是程序执行的最小单位，是轻量级进程，通常用于在一个进程中并行执行多个任务。
资源分配：进程是系统中最小的资源分配单位，而线程则是系统中最小的执行单位。]]></description><category></category></item><item><title><![CDATA[操作系统—进程(2)]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/140968835</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/140968835</guid><author>Lon_Sick</author><pubDate>Wed, 07 Aug 2024 20:58:58 +0800</pubDate><description><![CDATA[子进程的创建：子进程是通过fork()系统调用从父进程创建的。fork()调用会复制父进程的地址空间，包括代码段、数据段、堆和栈，来创建一个新的进程。这些函数用于在调用它们的进程中执行一个新的程序。执行exec函数后，当前进程的映像会被新程序替换，从新程序的启动代码开始执行。如果exec成功执行，它不会返回；如果出错，返回-1并设置errno。2.exec。]]></description><category></category></item><item><title><![CDATA[操作系统—进程(1)]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/140834824</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/140834824</guid><author>Lon_Sick</author><pubDate>Tue, 06 Aug 2024 23:44:16 +0800</pubDate><description><![CDATA[进程是一个程序执行的过程，会去分配内存资源，cpu的调度。
pcb(process control block):进程控制块是一个结构体。]]></description><category></category></item><item><title><![CDATA[Linux下目录文件操作]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/140781649</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/140781649</guid><author>Lon_Sick</author><pubDate>Mon, 29 Jul 2024 22:10:49 +0800</pubDate><description><![CDATA[* 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。]]></description><category></category></item><item><title><![CDATA[man手册查找的简单使用方法]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/140781122</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/140781122</guid><author>Lon_Sick</author><pubDate>Mon, 29 Jul 2024 21:14:25 +0800</pubDate><description><![CDATA[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：递归在每一个目录中找。]]></description><category></category></item><item><title><![CDATA[Linux应用编程(高级编程)]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/140780135</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/140780135</guid><author>Lon_Sick</author><pubDate>Mon, 29 Jul 2024 20:57:57 +0800</pubDate><description><![CDATA[----------------------------[硬盘]c -- character  -- 字符设备文件 --- 鼠标 ---- ls -l /dev/input/p -- pipe       -- 管道文件     --- 实现操作系统中 进程间的一些 信息交换(通信)b -- block      -- 块设备文件   --- 硬盘 ---- ls -l /dev/sda。s -- socket     -- 套接字文件   --- 网络的时候 (进程间的通信)]]></description><category></category></item><item><title><![CDATA[益智小游戏----“2048“(Linux下C语言初学两周版)]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/139854143</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/139854143</guid><author>Lon_Sick</author><pubDate>Mon, 01 Jul 2024 22:36:41 +0800</pubDate><description><![CDATA[在Linux下使用C语言制作2048小游戏。]]></description><category></category></item><item><title><![CDATA[指针（Day10）]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/139247889</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/139247889</guid><author>Lon_Sick</author><pubDate>Mon, 27 May 2024 21:12:19 +0800</pubDate><description><![CDATA[/因为左右两边类型不一致，p是int *  //int * 表示 是一个 存放int类型数据的 空间的地址。//a 是一个float类型的变量, &a 表示获得了这块空间的地址，这个值的类型是float *//表示的p中存放的 地址编号 所代表的那块空间 中要存放的数据的类型。//指针是一种数据类型, p是什么类型 => int * //int型的指针(地址)类型。//p指向的数据类型是int类型   //p指向的类型 基类型 (目标类型)//p变量，可以存放的是 int类型的 地址。]]></description><category></category></item><item><title><![CDATA[函数（二）（Day11）]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/139158205</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/139158205</guid><author>Lon_Sick</author><pubDate>Thu, 23 May 2024 21:52:18 +0800</pubDate><description><![CDATA[因为传的是数组名，而数组名是数组首元素的地址，所以相当于将数组空间的地址传给了被调函数，而被调函数，通过数组下标运算，可以直接访问到了主调函数中对应数组空间的数据。形式上，保持一致，被调函数中 就可以 访问到主调函数中 数组的数据。所以，数组传参的这种方式，可以实现，被调函数修改主调函数中的数据。1. 将n-1格盘子， 从 A(起始柱子) 移动 C 辅助柱子。2. 将第n格盘子，从A (起始柱子) 移动到B (目标柱子)1. 将n-1格盘子， 从 A 起始柱 移动 B 辅助柱子。int a[10];]]></description><category></category></item><item><title><![CDATA[函数（Day10）]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/139158038</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/139158038</guid><author>Lon_Sick</author><pubDate>Thu, 23 May 2024 21:28:06 +0800</pubDate><description><![CDATA[6.如果函数没有返回值，此时返回值类型说明符 可以写成 void //空 -没有。2.返回的结果，与返回值类型说明符，之间类型不一致时，以返回值类型说明符的类型为准。返回值的类型标识符 //用来说明 该函数(function)带出来数据的类型。问题n的解决，需要问题n-1的解决，往前推，直到，有一个明确的结果。//step2: 考虑 这个函数，需要用到哪些数据 --- 形式参数。返回值的类型标识符 函数名(形式参数) //函数头 ---head。return 语句  //表示，从函数中返回(就是函数结果)]]></description><category></category></item><item><title><![CDATA[数组（二）（Day9）]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/139157915</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/139157915</guid><author>Lon_Sick</author><pubDate>Thu, 23 May 2024 21:17:49 +0800</pubDate><description><![CDATA[while() //循环  //循环的条件 s1[i] == s2[i]  s1[i]!//一维数组 有5个 char[10] 这种类型的数据。//一个存放了 3个 char[4]这种类型的一维数组。//一维数组，这个一维数组的元素类型 int[3]a[0] a[l] a[2],每个元素又是一个包含4个元素的一维数组。]]></description><category></category></item><item><title><![CDATA[数组（Day8)]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/138931520</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/138931520</guid><author>Lon_Sick</author><pubDate>Thu, 16 May 2024 02:01:52 +0800</pubDate><description><![CDATA[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).[常量表达式]--- [] //定义时，表示此时定义的是一个数组。]]></description><category></category></item><item><title><![CDATA[流程控制（二）（Day7）]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/138823963</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/138823963</guid><author>Lon_Sick</author><pubDate>Mon, 13 May 2024 23:50:49 +0800</pubDate><description><![CDATA[do-while  --先执行 后判断   //循环体始终都会被执行到，最少是一次。一个大于1的自然数，除了1和它自身外，不能被其他自然数整除的数叫做质数；语法 while后面，不要加分号 //除非就是要写一个空语句。//循环过程中要对i代表的数字进行拆分，计算和判断。所谓素数是指除了 1 和它本身以外，不能被任何整数整除的数。（1）****goto //可以构造循环 ，本身并不是循环语句。for( 表达式 1;直到，表达式判断为假，while结束(循环结束)含义:  结束本次循环，继续下一次循环。]]></description><category></category></item><item><title><![CDATA[流程控制（二）（Day6）]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/138729174</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/138729174</guid><author>Lon_Sick</author><pubDate>Sat, 11 May 2024 20:45:25 +0800</pubDate><description><![CDATA[(1).能被4整除，但是 不能被100整除     //2022 2008 2024。2.switch 中的 表达式 必须是一个整型表达式 或者是与整型兼容的类型的表达式。(2).能被400整除  //世纪年份 -- 2000 1900 2100。根据 表达式的结果，去匹配 case后面的 常量表达式的结果，否则，继续 判断 表达式2，如果表达式2为真 ，则，执行 语句2。否则，继续 判断 表达式3，如果表达式3为真 ，则，执行 语句3。则，表示if语句结束，程序继续往下执行if后面的语句。]]></description><category></category></item><item><title><![CDATA[输入输出（二）+流程控制（Day5）]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/138678802</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/138678802</guid><author>Lon_Sick</author><pubDate>Fri, 10 May 2024 19:54:01 +0800</pubDate><description><![CDATA[/此时a被当做地址用了，这不是一个有效的地址---访问到了 不能访问的空间(非法内存)//... 表示可变参数 --参数的数量可以变。//如果输入的数据，已经匹配了3个字符宽度，则表示scanf结束。如果数据本身宽度 < m   //输出结果默认右对齐，前面默认补空格，前面空出来的还可以补0。%lf --- 表示将输入的 浮点形式的数据，转换为double类型。// %Lf // 表述输出 long double 注意 L 要大写。(1) m //宽度  -- 在输入时，表示指定了输入数据的宽度。]]></description><category></category></item><item><title><![CDATA[数据类型,运算符和表达式（三）+输入输出(Day4)]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/138627256</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/138627256</guid><author>Lon_Sick</author><pubDate>Thu, 09 May 2024 19:47:53 +0800</pubDate><description><![CDATA[/这里的a本身是左值，但是不能做++a,a++,原因是const修饰后，a成了只读变量)lvalue (locationable value) //可定位的  ---可以获取到它的地址。//形参 --形式参数 ---本身是一个变量。工具 --- c语言相关 函数库 提供的函数  (function-功能)注：%50---->[0,49]---->+50---->[50,99]// 能放在 = 左边的值，叫做左值  --- 变量。&a //& 表示取地址 ---获取a对应的内存单元的编号(地址)]]></description><category></category></item><item><title><![CDATA[数据类型，运算符和表达式（二）（Day3)]]></title><link>https://blog.youkuaiyun.com/Lon_Sick/article/details/138583982</link><guid>https://blog.youkuaiyun.com/Lon_Sick/article/details/138583982</guid><author>Lon_Sick</author><pubDate>Wed, 08 May 2024 20:29:41 +0800</pubDate><description><![CDATA[符号位(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。]]></description><category></category></item></channel></rss>