自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 操作系统第二1章

2024-02-17 07:41:07 327

原创 操作系统4.1

2024-02-03 22:55:52 284

原创 操作系统2.4

2024-02-02 09:24:32 323

原创 操作系统2.3

2024-01-25 20:15:02 324

原创 操作系统2.2

2024-01-25 20:04:58 403

原创 操作系统2.1

2024-01-25 19:58:34 310 1

原创 操作系统第一章

2024-01-25 19:45:18 403 1

原创 操作系统2

2024-01-25 09:21:09 347 1

原创 操作系统知识点

2024-01-24 16:23:14 331 1

原创 基于ipv4的流媒体组播系统

1. 协议中定义的数据类型是往组播中发送的时候需要遵循的,在组播中取到的数据也是协议中的类型,server向组播中传送频道列表和频道数据需要遵守,媒体库中获取频道列表和频道数据时不需要遵守协议中的数据类型。2. 为了让客户端知道接收的数据是频道列表和频道数据,协议中定义了一个共用体结构。

2023-09-22 19:16:04 778 2

原创 网络 编程

网络编程中如果要发送的数据是大于1字节的,需要将数据转化成网络字节序再发送,在接受的时候转换成本地字节序。C:三个字节的网络号+一个字节的主机号,要求以110开头,范围192 - 223。ip地址的表示是点分十进制的方式,就是每一个字节用来分割,转换成十进制来表示,B:两个字节的网络号+两个字节的主机号,要求以10开头,范围128 - 191。A:一个字节的网络号+三个字节的主机号,要求以0开头,范围0 - 127;物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。

2023-09-13 20:26:44 98

原创 高级 io

非阻塞io:在原来的io操作中,默认是阻塞io,即当读空文件时,read阻塞,在read阻塞期间,如果被信号打断了,errno会设置为EINTR,这种错误也叫假错;阻塞io:read读空管道不会阻塞,会返回错误值-1,errno会设置为EAGAIN,这种错误称为假错;优点:程序更加健壮,如果有功能增加,无非就是增加几个状态,原来的状态是不需要改变的,改变的是多了几条切换的语句,本质上就是多了几个case。高级io:io的特殊表现有非阻塞io,文件锁,io多路转接,存储映射等。wfds集中有空间可写。

2023-09-11 20:38:41 86

原创 标准信号的一些内容

main函数接收到信号之后,进入内核态,内核判断pendding & ~mask是否为1,为1的话讲pendding位置0,mask位置1,然后返回用户态执行信号处理函数,函数执行结束后,将mask位置0。标准信号中SIGCONT,SIGSTOP,SIGSEGV,SIGINT(ctrl + c),SIGALRM,SIGQUIT(ctrl + \)请求服务是可以解决突发事件的,请求响应的令牌个数就行,如果令牌数量不能满足,则丢弃。pendding:置1代表信号产生了,置0代表了信号没有产生,默认为0。

2023-09-01 19:39:04 38 1

原创 进程控制(多进程)

查看进程的pid:pid_t getpid(void),返回值是pid_t类型的pid,pid_t是整型。ps指的是查看进程某一时刻的状态:例如ps aux查看进程pid,stat(进程状态),COMMAND。子进程创建成功,会复制父进程的PCB块,子进程执行的位置与父进程执行的位置一样。每一个进程都会有一个PCB进程控制块,控制程序的执行,例如程序执行的位置。ps axj查看进程pid,ppid(父进程),stat,COMMAND。进程的优先级是数字越大的优先级越低,数字越小的优先级越高。

2023-08-29 20:11:44 30 1

原创 进程开始,终止

main函数可以利用return返回数值到C启动例程中,由C启动例程调用exit函数,exit在进行一些清理工作之后,调用_exit或者_Exit返回内核。内核调用C启动例程,C启动例程是一段已经编写好的代码。exit在调用_exit函数之前需要调用终止处理函数(atexit),和标准io缓存区清理函数。main函数还可以直接在函数内调用_exit或者_Exit,回到内核。用户函数中直接调用_exit或者_Exit。exit是库函数,_exit是系统调用函数。3.调用_exit或者_Exit。

2023-08-28 20:15:41 29 1

原创 Linux密码校验过程

密码存储在/etc/shadow,是被加密了的密码。返回值是输入的密码,传参内容可以是任意值。得不到原本的密码,只能得到加密的密码。得到一个包含有加密密码的结构体。可以把密码计算成加密的密码。

2023-08-28 19:07:36 174 1

原创 makefile编写规则

LDFLAGS是makefile自带的变量,而且makefile编写很严格,以一个Tab开头,不能随意加空格。makefile,Makefile,MAKEFILE都可以。有了makefile之后可以直接make就行。make clean是执行clean命令。例如编译的时候需要加上-lcrypt。$@代表目标文件$^代表依赖文件。如果有要加入的链接文件可以用。make默认执行第一条命令。

2023-08-28 18:42:25 31 1

原创 文件。。。

st_mtime宏(是struct stat结构体中定义的宏)得到文件最后一次修改的时间戳,时间戳就是距离1970年1月1号00.00.00过了多少秒。strftime(3)将时间结构体转换为格式化的字符串。localtime(3)可以根据时间戳得到时间的结构体。ctime 文件最后一次状态改变时间。atime 文件最后一次访问时间。mtime 文件最后一次修改时间。

2023-08-22 19:42:47 31 1

原创 stat实现

文件的权限由st_mode与每个组对应的变量做&运算,一共9位,看是否有权限。其中文件的类型由st_mode与S_IFMT做&运算得到具体的类型。将会得到一个struct stat类型的变量statbuf。struct stat是一个结构体类型。

2023-08-22 19:25:13 21 1

原创 dup和dup2

指定一个非负整型数作为新的文件描述符。如果这个指定的文件描述符正在使用,则函数先将其关闭,然后再作为新的文件描述符,如果指定的文件描述符跟旧的文件描述符一样,则函数什么都不会做。把当前可用的最小的非负整型数作为新的文件描述符,把oldfd的文件描述符表中的复制到新的文件描述符中。复制是把旧的文件描述符中的指向文件表的指向复制到新的文件描述符的文件指针中。文件描述符表有两项:文件描述符标志位和指向文件表的指针。

2023-08-22 07:35:12 22 1

原创 文件共享Linux

不同进程打开同一个文件得到的是两个不同的文件描述符,两个不同的文件描述符表项,两个不同的文件表。但是两个文件描述符可以公用一个i_node结点表。每个进程在进程表中都有一个记录项,记录项中包含文件描述符表,有两项,分别为文件描述符和指向文件表的指针。文件表有三项,分别为文件描述符的状态,也就是打开方式,还有文件偏移量,指向i_node结点表的指针。i_node结点表有三项,分别为文件的大小,文件的权限,内核io操作函数的入口。内核使用三种数据结构表示打开的文件:进程表,文件表,节点表。

2023-08-21 16:28:58 21 1

原创 IO读,写,定位,函数

errno是一个全局整形变量,默认为0,代表成功,errno会存储最近的一次错误,下一次的错误会覆盖上一次的错误。文件描述符:fd,非负整型数,是文件io打开文件的标志,使用规则当前可用最小的作为新打开的文件描述符。fptintf(stderr, "出错了:",stderror(errno));文件表(pos代表偏移量,文件的打开方式,指向i_node结点表的指针)成功返回读到的字符个数。成功返回写入的字符个数,失败返回-1,读到最后EOF返回0。文件流:文件打开的标志,是结构体类型的指针,FILE *。

2023-08-21 15:15:31 23

原创 系统IO(文件IO)

pathname指要打开的文件的路径, flags指的是打开的方式,有O_RDONLY,O_WRONLY,O_RDWR三选一,附加项有O_CREAT,O_TRUNC,O_APPEND。fd为要写入数据的文件描述符, buf是准备要写入的数据,count是要写入的字节的个数。fd为文件描述符, buf是存储读的数据, count代表最多读取的字节。标准错误输出 2 stderr (FILE *)标准输出 1 stdout (FILE *)标准输入 0 stdin (FILE *)

2023-08-20 14:22:21 20

原创 Linux中getline源码实现

lineptr开辟的存储字节数大小,如果不足以读取一行,getline会再次开辟空间,stream是要读的文件的文件流。lineptr是存储字符的指针的地址,*lineptr本身就自带空间,

2023-08-20 10:39:07 105 1

原创 标准IO函数

stream指的是要读入的文件流,offset指的是要偏移的字节,whence有三个值,分别是文件的开头,文件的当前位置,文件的末尾。size_t 是整型的,返回的值是读的成员个数,ptr是要写入的地址,size是指写入的每个成员的大小,nmemb是指每次读入多少个成员,stream是要读入的文件流。ptr指的是要读的文件流, size指的是读的成员的大小,nmemb指的是每次读的成员的个数,stream指的是要输出的地址。stream指的是文件流;c指的是要输入的元素,stream指的是输出的文件流。

2023-08-18 19:17:33 23

操作系统知识\习题加解析

操作系统知识\习题加解析

2024-01-24

空空如也

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

TA关注的人

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