Linux基础
文章平均质量分 66
Verdure
这个作者很懒,什么都没留下…
展开
-
Linux信号基本概念
利用bash创建ps命令------execl的使用(结合fork)fork+exec()是Linux上创建新进程方式#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<assert.h>#include<sys/wait.h>int main(){ printf("main pid=%d,ppid=%d\n",getpid(),getppid(原创 2022-10-17 23:56:36 · 393 阅读 · 0 评论 -
Linux进程打开文件(先open再fork、先fork再open)
库函数调用与系统无关,不同的系统,调用库函数,库函数会调用不同的底层函数实现,因此可移植性好;系统调用是为了方便使用操作系统的接口,而库函数则是为了人们编程的方便;先创建一个文件file.txt,内容为abcdefg;inode节点:存放有关文件的属性信息;(了解文件偏移量不共享)原创 2022-10-17 19:34:29 · 557 阅读 · 0 评论 -
Linux进程替换(exec系列)
man execl看帮助手册//path:新替换的程序的路径名称//arg :传给新程序主函数的第一个参数,一般为程序的名字//arg 后面是剩余参数列表,参数个数可变,必须以空指针作为最后一个参数//在环境变量PATH指定的路径里面搜索;;//把参数都放在了一个数组中//系统调用//前五个是库函数,最后一个是系统调用,所以本质上上面5个都是通过第六个系统调用实现的.原创 2022-10-17 16:56:42 · 436 阅读 · 0 评论 -
Linux申请空间(malloc)
如果当前物理内存空间不够,看有没有虚拟空间,若有,观察虚拟内存+物理内存是否满足申请大小,否则不能成功。1、进程在执行的过程中,malloc申请空间,不使用时,没有free就会出现内存泄漏;如果进程结束了,那么所有向操作系统申请的内存都会被回放(释放);内核会给子进程分配和父进程一样的空间,父子进程都需要free。如果当前物理内存剩余空间够用,那么申请空间可以成功。4.父进程堆区申请的空间复制后,子进程也有一份。2、申请1G或者更大空间,到底能不能成功?申请空间——>物理内存剩余空间+虚拟内存。原创 2022-10-17 16:27:24 · 1964 阅读 · 0 评论 -
Linux操作文件的底层系统调用
两个参数用于打开一个已经存在的文件;三个参数的用于新建一个文件,并设置访问权限;pathname:文件的路径和名称;flags:文件的打开方式;mode:文件的权限,如"0600";为int,称为文件描述符;(Linux上一切皆文件)O_WRONLY:只写打开;O_RDONLY:只读打开;O_RDWR:读写方式打开;O_CREAT:文件不存在则创建;O_APPEND:文件末尾追加;O_TRUNC:清空文件,重新写入;原创 2022-10-15 21:17:03 · 638 阅读 · 0 评论 -
Linux——僵死进程
如果父进程不调用wait/waitpid的话, 那么保留的那段信息就不会释放,其进程号会一定被占用,但是系统所能使用的进程号是有限的,如果产生了大量的僵死进程,将因为没有可用的进程号而导致系统不能产生新的进程。当一个进程结束时,进程实体先被释放,因为PCB中的exit_code记录进程的退出码,只有当进程的退出码被父进程获取之后,进程的PCB才会被释放。父进程先于子进程结束,子进程就会被收养,"父进程"就会获取退出码;当子进程先于父进程结束,父进程没有获取子进程的退出码,此时子进程变成僵死进程。原创 2022-10-15 20:54:24 · 419 阅读 · 0 评论 -
Linux中fork复制进程和写时拷贝技术(重点)以及fork相关练习
函数返回类型pid_t实质是int类型fork函数会新生成一个进程,调用fork函数的进程为父进程,新生成的进程为子进程。在父进程中返回子进程的PID,在子进程中返回0,失败返回-1fork是把已有的进程复制一份,当然把PCB也复制了一份,然后申请一个PID,子进程的 PID(父进程的)+1;子进程的PID=父进程的PID+1;如果父子进程想要做不同的事情,那么我们通过返回值来判断;getppid:得到一个进程的父进程的PID;getpid:得到当前进程的PID;原创 2022-09-28 16:35:23 · 709 阅读 · 0 评论 -
Linux进程的基础知识
进程控制块是用一个结构体struct task_struct实现。操作系统:管理计算机上的软硬件资源,为用户提供一个交换的接口。并发:某一个CPU,对于多个程序,CPU来回切换。专门用来管理进程块,维护进程相关信息。并行:某一个时刻,多个程序同时运行。原创 2022-09-28 16:27:25 · 111 阅读 · 0 评论 -
计算机组成基础知识
(1)计算机的组成原创 2022-05-14 14:32:30 · 500 阅读 · 0 评论 -
Linux下主函数的三个参数及printf隐藏的缓冲区
shell俗称“壳”,用来区别于核shell是一个命令解释器,位于操作系统和应用程序之间,是他们二者的接口,负责把应用程序的输入命令信息解释给操作系统,将操作系统指令处理后的结果解释给应用程序。bash是大多数Linux系统默认的shellprintf将内容先写入到缓冲区,缓冲区刷新到界面(屏幕)上的条件是:(1)缓冲区放满(2)缓冲区未满,强制刷新缓冲区到屏幕方法一:\n方法二:主动刷新:fflush(stdout);(3)程序结束时,自动刷新缓冲区,exit方法。原创 2022-05-14 21:07:57 · 576 阅读 · 0 评论 -
Linux静态库和共享库
linux和windows共享文件1.Vmware tools2.共享文件夹3.复制粘贴(x)1.库文件库是一组预先编译好的方法的集合Linux系统存储库的位置一般在/lib 和/user/lib (64位系统/usr/lib64)库的头文件放在usr/include2.库的分类静态库:libxxx.a(命名规则)共享库:libxxx.so3.静态库#(1)准备工作1)先将需要生成库文件的所有.c文件编译成.o文件gcc -c add.cgc原创 2022-05-09 21:52:53 · 245 阅读 · 0 评论 -
Linux下make和makefile作用和实现
1.什么是make和makefile?make:make是linux中的一个常用命令,在当前目录下,输入make,系统会自动在当前目录中寻找名为Makefile或makefile的文件,并对之进行解释处理,根据makefile文件内容,针对目标(可执行文件)进行依赖性检测(要生成该可执行文件之前要有哪些中间文件)并执行相关动作(编译等)。Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件原创 2022-05-07 14:08:08 · 2200 阅读 · 0 评论 -
Linux下gdb调试及命令
gdb是GNU开源组织发布的一个强大的Linux下的程序调试工具。 一般来说,GDB主要帮助你完成下面四个方面的功能:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)3、当程序被停住时,可以检查此时你的程序中所发生的事。4、你可以改变你的程序,将一个BUG产生的影响修正从而测试其他BUG。1.gdb安装sudo apt-get install gdb2.gdb调试(1)debug版.原创 2022-05-07 13:41:15 · 418 阅读 · 0 评论 -
Linux编译过程
1.安装gcc,g++在终端输入以下命令:sudo apt install gccsudo apt install g++就本质而言,gcc和g++并不是编译器,也不是编译器的集合,它们只是一种驱动器,根据参数中要编译的文件类型,调用对应的GUN编译而已。更准确的说法:gcc调用了C编译器,而g++调用了C++编译器。gcc和g++的主要区别1)对于 *.c和*.cpp文件,gcc分别当做c和cpp文件编译(c和cpp的语法强度是不一样的);2) 对于 *.c和...原创 2022-05-07 11:41:14 · 1528 阅读 · 0 评论 -
Linux进程/用户管理命令
1.进程管理命令进程:运行中的程序进程最根本的属性是动态性和并发性。进程是有生存期的,其动态性是由其状态转换决定的程序:存储在磁盘上的二进制可执行文件操作系统是通过管理进程,让进程运行来完成用户的任务的PCB:进程控制块,记录一个进程执行过程中的相关属性;PID:是操作系统对进程的标识, 每一个进程的PID都是不同的;系统管理进程(可执行程序的代码+各种资源及处理器状态等等)通过PCB(进程控制块) 来记录这些数据:(1)ps默认显示与当前中断有关的进程信息;原创 2022-05-07 10:51:32 · 622 阅读 · 0 评论 -
Linux文件压缩/解压
(1)tar:打包或者解包tar cvf xxx.tar(打包好的名字) 需要打包的所有文件名(2)gzip 压缩或者解压#gzip命令会把xxx.tar压缩成xxx.tar.gz压缩:gzip 打包的名字gzip xxx.tar解压:gzip -d xxx.tar.gz(3)tar一步解压GNU之后的tar命令可解压两种格式:tar.gz和tgz格式tar zxf xxx.tar.gztar zxf xxx.tgz...原创 2022-05-07 09:35:02 · 413 阅读 · 0 评论 -
Linux文件编辑命令
1.vim简介vim是vi的升级版本,是vi发展出来的一个文本编译器。代码补全、编译及错误跳转等方便编程的功能特别丰富。用vi自动连接的是vim ;vim 的官方网站 (https://www.vim.org/)2.安装vimsudo apt install vim安装过程出现问题解决办法:(1)出现“无法获得锁 ”之类的sudo rm 文件名删除多次(2)apt update:刷新软件源3.vim的三种模式vim分为三种模式:命令模式,插入模式(原创 2022-05-06 20:34:31 · 13234 阅读 · 0 评论 -
Linux文件查看命令
1.cat(1)cat:查看文件内容(2)合并文件:cat a.txt原创 2022-05-06 19:29:15 · 10201 阅读 · 0 评论 -
Linux基础及基础命令
u:表示属主(user) g:表示同组人(group) o:其他人 (other) a:所有人 (all)3).同时修改main.c的属主权限和组用户权限:chmod u-w,g+x main.c。(6)man:帮助手册 (1)代表命令 (2)代表系统调用 (3)代表库函数。(16)wc:统计文件中单词的个数(-w),字符的个数(-c),行数(-l)find 搜索路径 -cmin -n(搜索过去n分钟内修改的文件);find 搜索路径 -ctime -n(搜索过去n天内修改的文件);原创 2022-04-20 17:47:27 · 655 阅读 · 0 评论