UNIX环境高级编程
文章平均质量分 93
本专栏内容依据《UNIX环境高级编程(中文第三版》以及李慧芹老师讲解内容进行整理,持续更新。
十七阿哥的春天
部分内容仅对粉丝可见,请前往分类专栏进行查看。
展开
-
嵌入式基础面-UNIX高编阶段常见面试题整理
本章详情: 该文章是我在招阶段整理的关于“嵌入式面经”的一些道题目,“软件开发岗位”也可以参考下。涵盖了大多数嵌入式/软件开发岗位常见基础面试题,题目来源是牛客网各大大厂的面经,答案是我逐个查阅资料,理解整理出的答案争取让读者尽可能的容易阅读和理解,部分内容来源于牛客网用户:爱打球的程序员乔丹。资深嵌入式软件开发工程:任立超。UNIX高编阶段常见习题整理目录UNIX高编阶段常见习题整理一、文件系统与IO1、 Linux内核空间模型2、标准I/O和文件I/O有什么区别3、缓存区.原创 2021-10-04 15:41:39 · 490 阅读 · 0 评论 -
C++初探:qt应用
C++面向对象后缀 .cpp编译: g++ xxx.cpp**封装:**封装的抽象过程,描述一类事物的特点**类:**一类事物的统称**对象:**某类事物的一个特别/个体如何描述一类事物:数据成员,成员方法。实例化对象:int i;例: A a1; “实例化一个A类型的对象a1”继承:核心,在原有的特点/功能上加上新特点/功能。多态:延申, 同一条命令作用在不同对象上显示效果不同。一、输入和输出1.cin (输入) – 默认与键盘链接,接受从键盘输入的数据信息。语法原创 2021-09-22 19:27:20 · 437 阅读 · 1 评论 -
一、标准/文件IO
重定向文件IO一、标准IO1、文件操作报错信息打印2、标准IO函数(1).fopen() && fclose()(2).fscanf() && fprintf()(3).fgetc() && fputc()(4).fgets() && fputs()(5).fread() && fwrite()二、拓展提升1、查看一个程序最多能打开多少个文件2、ulimit:3、setlimit一、标准IOIO:input &a原创 2021-08-19 17:27:11 · 350 阅读 · 2 评论 -
二、系统IO
(sysio)文件IO1、open()函数功能:使用给定的模式flags打开pathname所指定的文件函数原型:( $: man 2 open --> 手册 )当文件存在时int open(const char* pathname,int flags)//只要有open就会产生一个结构体,然后去调用它,返回给用户一个整型数文件描述符。//拿到的是一个文件描述符,然后通过描述符引用结构体。当文件不存在时int open (const char* pathname,int f原创 2021-08-23 09:07:56 · 203 阅读 · 1 评论 -
三、文件和目录
ctags /usr/include 搜索树vim -t ssize_t //检索当前类型命令du 打印文件在磁盘中真正的占用空间文件和目录相关函数1、stat()函数功能:int stat(const char *pathname, struct stat *statbuf);//返回值:成功0 失败--> -1stat默认展开符号链接 lstat不展开符号链接struct stat 结构体成员:struct stat { dev_t st_d原创 2021-08-23 19:45:08 · 288 阅读 · 0 评论 -
四、文件信息 五、进程环境
tail -f 以动态的形式查看文件尾部的变化一、系统数据文件和信息6.10 时间和日期例程计算机:大整数(time_t)程序员:结构体用户:字符串时间相关函数1、time函数功能:能从内核当中拿到一个以秒为单位的时间time_t time(time_t *tloc); //#include <time.h>//返回值:成功-->time_t * 失败--> -1time_t stamp;stamp = time(NULL);2、localt原创 2021-08-26 09:34:48 · 384 阅读 · 0 评论 -
六、进程控制
六、进程控制$ top 动态查看进程 $ pstree 查看进程之间的关系$ ps -ef | more //让显示的内容以页显示6.1 进程标识进程pid号使用策略,一直往下用,直到用到了最大值然后再回去找1号init进程是所有进程的祖先进程,所有进程都是直接或间接由1号进程产生的。进程产生后会在一个就绪队列中进行排队(进程多处理器少),大体会以先进先出的形式进行调度,小部分按照优先级进行调度,被调度的时候进程变成running态,注意:进程间只有父子关系 例: 进程ABC,B死了,原创 2021-09-02 17:13:47 · 235 阅读 · 0 评论 -
七、进程关系 八、守护进程
进程控制、守护进程七、进程控制7.1 进程组7.2 会话7.3 终端八、守护进程8.1 写一个守护进程8.2 写一个日志文件openlog() && closelog()syslog()七、进程控制$ ps axj //打印进程状态$ ps axj | grep xxxx //之查看跟xxxx有关的进程$ tail -f xxx //动态查看7.1 进程组每个进程除了有一进程ID之外,还属于一个进程组,进程组是一个或多个进程的集合,进程组ID是一个正整数,并可以存放在pi原创 2021-09-05 18:59:06 · 199 阅读 · 0 评论 -
九、信号(10章)
九、信号(10章)$ ulimit -a$ ulimit -c 1024 //设置资源上限$ gdb //保存单步调试信息,corefile$ kill -l //查看进程号$ kill -8 11222 //给一个进程发送一个信号编号为8的信号$ diff xxx xxx //比较两个文件$ gcc -O //优化 //VT 控制码 怎么在当前终端设置颜色**同步:**结果可预见**异步:**时间什么时候后不知道,发生后会引起什么结果不知道。**解决方法:原创 2021-09-07 19:47:00 · 274 阅读 · 0 评论 -
十、线程(11 章)
十、线程$ ps -axm //显示所有的线程$ ps ax -L //10.1 线程概念posix只是线程标准,不是实现。先有标准后有实现。线程的本质:正在运行的函数,之前的程序都是一个进程相当于一个容器,里面跑了很多个线程。进程通信是先有实现,后有标准。pthread_10.2 线程相关函数:由于pthread库不是标准linux库,所以编译 改为gcc thread.c -lpthread 即可。每一个线程都有一个栈pthread_equal()**函数功能:**比较原创 2021-09-09 21:46:18 · 252 阅读 · 0 评论 -
十一、高级IO
十一、高级I/O回顾/* 返回值 */阻塞IO 假错(EINTR) 阻塞期间被打断非阻塞IO 假错(EAGAIN) 非阻塞的模式下没读到 /* 返回值如果是-1 不一定是打开出错 */open(pathname,O_RDWR|O_NONBLOCK) //O_NONBLOCK 非阻塞读写 11.1非阻塞IOfcntl()函数功能:对已打开的文件描述符进行各种控制操作以改变已打开文件的的各种属性#include <uni原创 2021-09-15 19:53:32 · 143 阅读 · 0 评论 -
十二、进程间通信
十二、进程间通信管道天生能实现阻塞,管道必须凑齐读写双方才能建立mkfifo命名管道12.1 匿名管道匿名管道:pipe(),磁盘上看不到文件,相当于直接给了我们一个文件描述符或者FILE* 。导致最直接的结果就是 :如果两个进程之间没有血缘关系,是不能用匿名管道进行通信的,因为另一个进程找不到文件位置。局限性:管道只能在具有公共祖先的两个进程中使用,通常一个管道由一个进程创建,在进程调用fork之后,这个管道就能在父进程和子进程和子进程之间使用了函数原型:#include &l原创 2021-09-15 20:57:22 · 193 阅读 · 0 评论 -
十三、网络IPC 套接字
十三、网络IPC 套接字#协议族 man 7 中章节有介绍$ cd /proc/$ netstat -anu //查看udp 报式传输$ netstat -anu | grep xxxx //查看udp 报式传输$ netstat -ant //流式套接字字节序13.1 套接字描述符字节序[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xaxh4RYH-1631799712651)(E:\笔记 + 资料\03.APUE\page\image-20210原创 2021-09-16 21:42:02 · 288 阅读 · 0 评论