linux学习笔记
文章平均质量分 91
初学者必学的linux操作指令以及操作系统运行的原理
不断学习 不断深入
star_fighting
自我监督 自我学习
展开
-
学习exit--笔记记录
exit函数exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的。main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件。exit是结束一个进程,它将删除进程使用的内存空间,同时把错误信息返...原创 2020-03-19 16:38:53 · 203 阅读 · 0 评论 -
项目:linux在线编译系统
linux在线编译系统一、需求分析在线编译系统的实现,需要有服务器和多个客户端实现;客户端:- 允许客户选择编译的语言:c/c++/java...- 能够提供客户编写代码的功能(编写完成后自动保存到本地文件)- 能够将用户编写的代码传输到服务器- 能够接收到服务器的处理结果并显示 服务器:- 能够接受客户的代码(识别语言类型和接收代码)- 在线编译(根据语言的类型调用...原创 2020-03-19 16:26:08 · 930 阅读 · 0 评论 -
断言(assert)--学习
断言在我学习编程时,我一直认为断言(assert)是个报错函数,事实上,它居然是个宏,并且作用并非"报错"。我们先来看看百度的断言的含义:断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。使用断言可以创建更稳定、...原创 2020-03-17 23:24:01 · 8910 阅读 · 0 评论 -
进程间通讯--共享内存、信号量
消息队列MessageQueue:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。信号量Semaphore:信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。...原创 2020-03-10 22:19:53 · 469 阅读 · 0 评论 -
进程间的通讯---消息队列
进程间的通讯—消息队列消息队列MessageQueue:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。特点:I.是消息的链表。具有特定的格式,存放在内存当中,由消息队列标识符标识。II.消息队列允许一个或者多个进程向他写入与读取消息。III.消息队列可实现消息的随机查询,不一定要以先...原创 2020-03-10 21:16:49 · 189 阅读 · 0 评论 -
进程间的通讯--管道(有名、无名)
进程间的通讯–管道(有名、无名)管道pipe:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。(无名管道)【命名管道FIFO:有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。】管道1、特点:它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端。它只能用于具有亲缘关系的进程之间的...原创 2020-03-10 12:34:26 · 870 阅读 · 0 评论 -
回收子进程-孤儿进程、僵尸进城、wait()、怎么处理僵死进程
孤儿进程:父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程成为init进程,称为init 进程领养孤儿进程。僵尸进程:进程终止,父进程尚未挥手,子进程残留资源PCB存放于内核中,编程僵尸进程;值得注意的是,僵尸进程不能使用kill()命令杀死,kill是终结一个进程的,而僵死进程是出现在进程终止后出现的;wait():虽然子进程调用函数execve()之后拥有自己的内存空...原创 2020-03-09 18:20:30 · 831 阅读 · 0 评论 -
与进程相关的系统调用-exec函数(库函数)、dup函数(系统调用函数)
exec函数fork在创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数,便于函数执行另一种程序,当进程调用一种exec函数,该进程的用户代码空间和数据完全被新进程所替换,从新程序的启动例程开始执行,调用exec并不产生新的进程,所以调用exec函数之后进程的id没变化;头文件: #include <unistd.h>函数实...原创 2020-03-09 15:49:56 · 452 阅读 · 0 评论 -
Linux进程的创建与管理&&fork()&&如何跟踪子进程
Linux进程的创建与管理我们先简单的回顾一下进程的概念:进程这个概念是针对系统而不是针对用户的,对用户来说,他面对的概念是程序。当用户敲入命令执行一个程序的时候,对系统而言,它将启动一个进程。但和程序不同的是,在这个进程中,系统可能需要再启动一个或多个进程来完成独立的多个任务。在Linux系统中,除了系统启动之后的第一个进程由系统来创建,其余的进程都必须由已存在的进程来创建,新创建的进程叫做...原创 2020-03-09 13:07:52 · 803 阅读 · 0 评论 -
linux文件描述符-open、write、read、close、lseek
linux文件描述符-open、write、read、closeopen操作符:打开文件 open, creat - open and possibly create a file ordevice(打开、创建-打开并可能创建文件或设备)头文件:#include <fcntl.h>#include <sys/stat.h>#include <sys/t...原创 2020-03-08 11:16:39 · 356 阅读 · 0 评论 -
静态库和动态库
静态库和动态库库:存放的是预先编译好的(.o文件)方法的集合;Linux下,库分为静态库和共享库。静态库:生成静态库:静态库:库名:Libxxx.a,lib是库的前缀,xxx是库名,.a为静态库的后缀。第一步:将需要生成静态库的.c文件转换为编译后的.o文件命令:gcc -S mian.o mian.c第二步:将编译完成的.o文件放到一个集合中,生成静态库命令:ar cr...原创 2020-03-07 17:53:34 · 144 阅读 · 0 评论 -
gdb调试方法-基础
gdb调试方法GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 对于一名Linux下工作的c/c++程序员,gdb是必不可少的工具;GDB基本调试命令通过 gcc 的 -g 选项,将调试信息加到可执行文件中gcc -o main main.c -ggdb mainlist(简写 l): 查看源程序代码,默认显示10行...原创 2020-03-07 12:52:50 · 472 阅读 · 0 评论 -
linux-----makefile文件的编写
makefile文件的编写说道makefile文件,想必大家在学习 linux过程中都会遇到,今天我们来讲讲makefile文件先简单的说说makefile是什么?makefile项目代码的管理工具,管理程序的源代码;那我们为什么要写出makedile呢,原因在于如果我们需要做一个项目,项目里面包含了100个甚至更多的源文件,我们都知道,源文件编程我们要的可执行文件,就得进行预编译,编译,汇...原创 2020-03-04 17:21:53 · 702 阅读 · 0 评论 -
线程的同步问题--生产者 消费者
生产者消费者模型描述:生产者/消费者问题可以描述为:两个或者更多的进程(线程)共享同一个缓冲区,其中一个或多个进程(线程)作为“生产者”会不断地向缓冲区中添加数据,另一个或者多个进程(线程)作为“消费者”从缓冲区中取走数据。生产者/消费者模型关注的是以下几点:生产者和消费者必须互斥的使用缓冲区缓冲区空时,消费者不能读取数据缓冲区满时,生产者不能添加数据生产者/消费者模型的优点在...原创 2020-02-14 11:59:53 · 2438 阅读 · 0 评论 -
TCP协议特点和UDP协议特点&&TCP三次握手、四次挥手
TCP协议和UDP协议特点及其区别:TCP:TCP协议的主要特点:(1)TCP是面向连接的运输层协议;(2)每一条TCP连接只能有两个端点(即两个套接字),只能是点对点的;(3)TCP提供可靠的传输服务。传送的数据无差错、不丢失、不重复、按序到达;(4)TCP提供全双工通信。 允许通信双方的应用进程在任何时候都可以发送数据,因为两端都设有发送缓存和接受缓存;(5)面向字节流。 虽...原创 2020-02-14 10:00:04 · 417 阅读 · 0 评论 -
linux-1-文件目录管理&文本编辑
linux操作系统-文件目录管理首先我们要知道什么是操作系统?操作系统是一组控制和管理计算机软硬件资源,合理地对各类作业进行调度以及方便用户使用的程序的集合;linux系统与windows系统的区别?1.windows操作系统: 1>不免费 部分开源 2>单用户操作系统2.linux操作系统: 1>免费 开源 2>多用户操作系统(允许多个用户同时...原创 2020-01-27 13:55:44 · 331 阅读 · 0 评论