- 博客(33)
- 收藏
- 关注
原创 网络基础知识
查看ip的命令,ip地址分类,CIDR及相关概念(网络地址、广播地址、子网掩码),公有ip/私有ip,网络设备的状态标识、qdisc pfifo_fast...
2022-05-29 11:58:23
2074
原创 关于SIGCHLD信号
用wait和waitpid函数清理僵尸进程,父进程可以阻塞等待子进程结束,也可以非阻塞地查询是否有子进程结束等待清理(也就是轮询的方式)。采用第一种方式,父进程阻塞了就不能处理自己的工作了;采用第二种方式,父进程在处理自己的工作的同时还要记得时不时地轮询一下,程序实现复杂。其实,子进程在终止时会给父进程发SIGCHLD信号,该信号的默认处理动作是忽略,父进程可以自定义SIGCHLD信号的处理函数,这样父进程只需专心处理自己的工作,不必关心子进程了,子进程终止时会通知父进程,父进程在信号处理函数中调用wa
2022-05-10 22:28:40
325
原创 捕捉信号——自己定义信号处理函数
sigaction函数定义自己的信号处理函数;利用alarm函数和pause函数,配合sigaction函数,实现自己的mysleep函数。
2022-05-02 14:55:30
525
原创 命名管道FIFO
FIFO IPC机制是利用文件系统中的特殊文件来标识的。可以用mkfifo命令创建一个FIFO文件。$ mkfifo tube$ ls -l tubeps:如果要使用函数创建,man 3 mkfifo获取更多信息。
2022-04-02 21:58:09
497
原创 管道(popen和pclose)
这两个函数实现的操作是:创建一个管道,fork一个子进程,关闭管道的不使用端,exec一个cmd命令,等待命令终止。
2022-04-01 21:09:33
650
原创 wait和waitpid函数
一个进程在终止时会关闭所有文件描述符,释放在用户空间分配的内存,但它的PCB还保留着,内核在其中保存了一些信息:如果是正常终止则保存着退出状态,如果是异常终止则保存着导致该进程终止的信号是哪个。父进程可以调用wait或waitpid获取这些信息,然后彻底清除掉这个进程。
2022-03-30 21:52:43
277
原创 stat函数
读取文件的inode,然后把inode中的各种文件属性填入一个strcut stat结构体传出给调用者。stat(1)命令是基于stat函数实现的。stat需要根据传入文件的路径找到inode。#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>int stat(const char *path, struct stat *buf);int fstat(int fd, struct
2022-03-20 15:12:27
316
原创 opendir/readdir/closedir函数
实现一个简易的ls -R命令,遍历目录下所有内容。opendir/readdir/closedir和stat函数。
2022-03-20 15:06:17
1322
1
原创 ext2文件系统
ext2是Linux早期比较流行的文件系统,很多文件系统(NTFS、FAT32等)的设计都源自于它。只要掌握了ext2文件系统,其他文件系统大同小异。文件系统反复横跨找文件的过程。软硬连接更深层次的理解。
2022-03-13 10:20:58
2393
原创 mmap函数
mmap可以把磁盘文件的一部分直接映射到内存,这样文件中的位置直接就有对应的内存地址,对文件的读写可以直接用指针来做而不需要read/write函数。
2022-03-12 13:37:13
224
原创 fcntl函数
用fcntl函数改变一个已打开的文件的属性而不必重新open文件,可以重新设置读、写、追加、非阻塞等标志。fcntl函数获取到的flags与各个标志属性宏进行&操作,可取出各个标志位。
2022-03-10 22:15:06
1060
原创 文件描述符fd,open函数
1.参数fd(open函数的返回值),是要关闭的文件描述符。当一个进程终止时,内核对该进程所有尚未关闭的文件描述符调用close关闭,所以即使用户程序不调用close,在终止时内核也会自动关闭它打开的所有文件。但是,作为一个合格的程序员,还是要手动关闭,因为在程序运行时间特别长的情况下,会浪费这个fd资源。2.由open返回的文件描述符一定是该进程尚未使用的最小描述符。
2022-03-05 12:23:57
2116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人