自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 笔记18

消息队列 消息队列:传送有格式的消息流 多进程网状交叉通信、实现大规模的数据通信 使用内核中的链表 消息队列是随内核持续的 线程 什么是线程 线程是进程的一个实体,它是程序运行的最小单位。同一进程下的线程可以通过全局变量通信 为什么要学习线程: 1、线程是进程的一个实体,它是程序运行的最小单位,它比进程要消耗更少的资源 2、能共享地址空间(进程)(堆栈) 线程由哪些组成 1、指令指针(指向当前被指向的命令) 2、一个栈(函数栈) 3、寄存器的集合(状态寄存器:一部分正在运行中的处理器的状态) 4、一个私有的

2021-04-06 09:12:57 71

原创 笔记16(有名管道、信号)

必须在系统调用fork()前调用pipe(),否则子进程将不会继承文件描述符 (1)如果管道的写端不存在,则认为已经读到数据末尾,该函数返回的读出字节数为0 (2)如管道写端存在时,如果请求的字节数目大于PIPE_BUF,则返回现有的数据字节数;如果不大于,则返回管道现有数据字节数,或请求字节数 有名管道 mkfifo mkfifo() int mkfifo(const char *pathname, mode_t mode); 信号 信号:软中断(程序间传输信息的媒介) ctrl+z:暂时信息 ctrl+

2021-04-06 09:05:30 77

原创 笔记15(进程间通信)

多进程的优缺点 对用户来说:操作系统将变得更加健壮(一个应用程序无法破坏另一个进程或操作系统) 对开发者来说,更容易进行内存的读取和写入 缺点: 多任务实验开销比较大 编写能够与其他进程通信或者能够对其他进程操作的应用程序将要困难的多 wait函数族 1、wait函数:(阻塞当前进程)将当前进程挂起。等待信号来临,用来等待子进程的结束。 pid_t wait(int *wstatus) WEXITSTATUS:宏定义:返回子进程的退出状态 2、waitpid():它可以等待指定的进程号 pid_t wait

2021-03-30 08:05:47 122

原创 笔记14(进程)

进程控制 什么是进程:进程是可并发执行的程序,是一个在数据集合上的运行过程 当一个程序开始执行后,在开始执行到执行结束的这段时间里,它内存中的部分被称为进程 通俗讲:程序:在硬盘上的可执行文件 进程:在执行中的程序 什么是并发 多进程同时运行,多个任务同时执行 虚拟内存 Linux虚拟内存管理技术 物理内存:实验在处理器中的内存模块,几百M 将硬盘中的一部分存储单元拿来当内存使用 4g(受操作系统的寻址范围的范围) 0x00000000-0xffffffff 操作系统:内核空间和用户空间 内核

2021-03-28 16:41:43 73 1

原创 笔记13

写字符的家族:fputc:将某个字符写入文字流 int fputc(int c,FILE *STREAM) putc:宏 putchar(c) print家族和scanf家族 1.print 2.fprintf:int fprintf(FILE *stream, const char *format, …); stdout 3.sprintf():往字符串写字符串 fscanf():从文件流里写读字符串 int fscanf(FILE *stream, const char *format, …); s

2021-03-26 00:08:13 45

原创 笔记12

lseek:用来调整光标的位置 lseek(文件描述符,光标移动的位置数,光标移动的形式) SEEK_SET:将光标移动到文件开头在增加相应的offset位置 SEEK_CUR:将光标移动到文件的当前位置再往后加offset的位置 SEEK_END:将光标移动到文件的末尾在增加offset的位置 lseek函数返回值:返回值是从文件开头到光标位置有多少个字符 计算字符串长度 ftruncate:将指定的文件大小修改成length指定的大小(用来给文件扩容,如果指定的大小小于当前文件,那就删除后面的数据)

2021-03-24 17:44:52 66

原创 笔记11(文件)

文件编程:进程线程编程 TCP/UDP Linux文件:文件本身包含的数据(打开文件可以看到的数据) 2.文件属性(元数据:文件的访问权限,文件的大小、创建日期等) 目录也是文件之一(当创建一个新的目录的时候,系统自动创建两个文件项 . …) .:当前目录 …:上一级目录 /usr/include:头文件 /usr/bin:多数日常应用程序 /usr/lib:系统文件 /usr/sbin:当用户模式中系统不用的系统管理程序 /usr/src:存放源代码 /var: cache:应用程序的缓存文件 lib:

2021-03-23 23:31:43 78 1

原创 笔记10

expr命令 expr命令是一一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串。 格式为: expr Expression (命令读入Expression参数,计算它的值,然后将结果写入到标准输出) 参数应用规则: 1.用空格隔开每个项; 2.用\ (反斜杠)放在shell 特定的字符前面; 3.对包含空格和其他特殊字符的字符串要用引号括起来 4.计算字符串长度 5.增量计数 说明: expr在循环中用于增量计算。先将变量初始化为0,然后循环值加1,反引号

2021-03-22 17:32:03 58

原创 笔记9

变量表达式 test是shell程序中的一个表达式,通常用在流程控制for,while,until,if等结构,用test命令去判断文件的存在与性质,变量的相互关系 语法:test<表达式> 如果<表达式>成立,test返回0,反之返回一个非0值 字符串比较 两个数值的比较 逻辑操作,可以进行and/or,与其他条件联合使用 文件操作,例如文件是否存在文件的状态等 字符串比较 -z<字符串>比较字符串的长度是否为0如果等于0则为0不是返回1 -n<字符串>比较

2021-03-20 10:36:55 48

原创 笔记8(shell变量类型)

shell变量类型 显示本地变量 echo $变量名 或echo $(变量名) #num=2 echo “This is $numnd” #num=2 #echo “This is ${num}nd” 要将name的内容多出“yes”两种方法 #name="$ name"yes #name=${name}yes 在子shell下变量的作用范围 bash进入子shell exit退出子shell bash echo输出子shell的变量值 exit退出后输出shell的变量值 释

2021-03-18 22:04:01 191

原创 笔记7(shell)

标准输入的文件描述符为0 标准输出的文件描述符为1 标准错误输出的文件描述符为2 (>)重定向文件 command > file 帮命令的结果重定向到这个文件里 shell shell就是一个命令解释器,它为用户提供了一个向Linux内核发送请求以便运行程序界面系统级程序 目前流行的几种shell:ash、bash、ksh、csh、zsh等 #echo $SHELL Linux下shell用的bash 管道pipe command1|command2[|command3…] 将一个程序的输出送到

2021-03-17 23:20:31 45

原创 笔记6(企业级Makefile写计算器)

用企业级Makefile写计算器 复制总控Makefile 复制scripts下的Makefile文件和并将文件中的路径改掉(先创建脚本文件并将脚本文件中的Makefile复制到该文件夹) 复制子目录(如include)下的Makefile到main、add…5个文件夹中 帮5个文件夹中的Makefile的路径改掉 1.嵌入式Linux开发工具-编译器gcc (静态库 动态库的制作) 可以制作库 库的使用 2.嵌入式Linux开发工具-调试器gdb(调试方法)目标:可以调试简单的错误和内存错

2021-03-16 18:57:45 85

原创 笔记5(Makefile)

企业级Makefile编写 总控makefile:进入各个功能子目录执行make命令,并将所有.o文件生成可执行文件 功能目录makefile:将功能目录下的所有.c文件编译成.o文件 脚本文件makefile:定义其他makefile文件所用到的变量 阅读makefile顺序 3 - 1 - 2 Makefile中函数的意义 $(wildcard 模式参数) eg:result: = $(wildcard *.c) result列出当前目录下所有.c文件 $(patsubst 模式参数,参数1,参

2021-03-15 23:16:03 55

原创 Linux下静态库与动态库

静态库与动态库 库文件:存放函数与变量的仓库,特点:只能使用库里的函数和变量,不能看到其实现 静态库.a:当使用静态库时,库里的函数和变量是在编译时加载到可执行文件 动态库.so:当使用动态库时,库里的函数和变量是在运行时加载到可执行文件的 可执行文件的大小:静态库>动态库----->内存的使用效率 静态库缺点:内存使用效率不高 可执行文件的速度:静态库>动态库------>运行效率:静态库高 可执行文件的功能升级:静态库<动态库----->功能升级的难易程度 可执行文

2021-03-11 20:24:17 57

原创 笔记二(vim编辑器)

ifconfig网络配置命令,ping命令检测主机 vim命令,vim hello.c编辑hello.c文件,其中进入编辑器时为命令模式,按a/u进入插入模式,按esc退出进入命令模式,按shift+:进入底行模式,在底行模式下按wq保底退出,按wq!强制保存退出。按shift+zz退出编辑器。yy为复制,p为粘贴,dd为删除,u恢复上一级。 s/hello/hi 将hello改成hi(光标要移到需要修改的行,在底行模式下) vi复制多行文本的方法 光标放到第6行, 输入:2yy 光标放到第9行, 输.

2021-03-10 20:22:57 121

空空如也

空空如也

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

TA关注的人

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