Linux
文章平均质量分 64
LLLLLLLLLLLLLLL.
这个作者很懒,什么都没留下…
展开
-
linux-根目录下的重要子目录存放的内容
linux之父:林纳斯·托瓦兹(Linus Torvalds)在linux下一个最重要的思想是“一切皆文件”linux根目录在linux的根目录下有很多目录主要目录及存放文件类型如下:bin (binary)存放使用者经常使用的命令dev ( dev是设备(device)的英文缩写) 存放所有的外部设备文件lib 存放放着系统最基本的动态链接共享库文件media 光盘文件proc (与进程有关...原创 2018-02-28 17:48:58 · 466 阅读 · 0 评论 -
Linux下打印彩色进度条
代码如下:#include<stdio.h>#include<stdlib.h>int main(){ char jdt[103] = " "; int i = 0; int j = 0; int flag = 0; char arr[4] = {'+','x'}; jdt[0] = '['; jdt[102] ...原创 2018-03-27 20:44:59 · 231 阅读 · 0 评论 -
进程调度算法
1、先来先服务调度算法(FCFS,first come first served) 各个进程按照先后顺序排队,然后依次被调度2、时间片轮转调度算法(RR,Round-Robin)每次没给进程的运行时间片段相等,没有优先,这使得一些必须被立刻处理的进程得不到处理3、最短作业优先(SJF, Shortest Job First)短进程优先4、多级反馈队列调度算法(Multilevel Feedback...原创 2018-04-11 23:07:35 · 494 阅读 · 0 评论 -
进程概念
在我们看来,进程是一个正在执行程序的一个实体,从内核的角度出发,进程是一个担当分配系统资源(CPU时间, 内存)的实体提到进程就不得不说PCD(process control block),进程的信息就被放在 进程控制块(PCB) 的数据结构中,进程控制块至少应该包含进程标识(是进程的唯一标识,PID),还有进程的优先级,记录进程的上下文信息,记录进程下一次下一条指令的地址,进程中的程序的地址,等...原创 2018-04-13 17:48:16 · 155 阅读 · 0 评论 -
使用代码模拟实现僵尸进程, 孤儿进程
在进程运行时,由于某些原因会产生僵尸进程和孤儿进程,僵尸和孤儿两个词语形象的体现某进程的运行状态僵尸进程:当进程加载到内存中时,需要向操作系统申请资源,正常情况下,当一个进程正常退出时,这个进程的资源会被他的父进程或者操作系统回收,如果这些资源在进程退出时没有被操作系统回收,就像一具已经僵硬的尸体,没人处理,形象的称这个进程为僵尸进程,如果僵尸进程一直不被回收,就造成了内存泄漏,试想一下,如果系统...原创 2018-04-14 00:15:48 · 255 阅读 · 0 评论 -
封装fork/wait,实现process_creat函数
先介绍一下wait:wait()会暂时停止目前进程的执行,直到有信号来到或子进程结束。如果在调用wait()时子进程已经结束,则wait()会立即返回子进程结束状态值。子进程的结束状态值会由参数status 返回,而子进程的进程识别码也会一快返回。如果不在意结束状态值,则参数status 可以设成NULL。子进程的结束状态值请参考waitpid()。头文件: #include <sys/wa...原创 2018-04-24 21:22:30 · 301 阅读 · 0 评论 -
用fock实现简易shell(程序替换)
fork之后就会创建则进程,数据、堆、栈有两份,代码仍然为一份但是这个代码段成为两个进程的共享代码段都从fork函数中返回,当父子进程有一个想要修改数据或者堆栈时,两个进程真正分裂子进程在创建的时候会复制父进程的代码。不管是共用代码还是复制代码,这就相当于父进程创建了一个和自己功能完全相同的进程,这样一来,子进程就只能进行和父进程一样的操作动作,这样做实际意义并不大,那怎么让子进程干和父进程不一样...原创 2018-04-21 21:26:28 · 326 阅读 · 0 评论 -
fork和popen/system
先介绍一下fork所需头文件:#include <unistd.h>fork的原型: pid_t fork(void);返回值:pid_t实际上是一个宏定义的int类型当调用成功时,fork的返回值如果是0, 则是子进程在运行,返回值大于零(子进程的pid),则在父进程内运行用调用失败返回-1如何穿件子进程?fork时,操作系统要为子进程开辟空间,分配资源,创建PCB,并为子进程复制一...原创 2018-04-21 21:45:06 · 506 阅读 · 0 评论 -
线程概念
什么叫做线程?在一个程序里的一个执行路线叫做线程,更准确的说,线程是一个进程内部的控制序列。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。在Linux操作系统中,并没有真正意义上的进程,而是用线程去模拟进程,我们把其称之为轻量级进程(Lightweight Process...原创 2018-04-26 17:57:11 · 191 阅读 · 0 评论 -
rpm安装和yum安装的区别(配置yum源)
yum是从网络安装源上下载rpm,如果存在依赖关系会把依赖的rpm同时下载安装(安装包都以rpm结尾)rpm是安装本地存在的rpm包,如果存在依赖也需要安装上源码安装是将源代码通过预处理,编译,汇编,链接形成可执行程序配置yum源(有网操作):在linux火狐浏览(firefox)器中输入:https://opsx.alibaba.com/mirror选择centos这一栏的帮助选择对应的Cent...原创 2018-03-27 20:25:56 · 1210 阅读 · 0 评论 -
cgdb安装教程
安装步骤(有网操作):下载cgdb-0.6.7.tar.gz压缩文件:wget http://cgdb.me/files/cgdb-0.6.7.tar.gz 下载完成之后当前目录会有一个cgdb-0.6.7.tar.gz压缩文件,建议下载到家目录解压cgdb-0.6.7.tar.gz文件:tar -zvxf cgdb-0.6.7.tar.gz解压完成之后,当前目录会出现cgdb-0.6.7目...原创 2018-03-27 20:01:25 · 2241 阅读 · 2 评论 -
gcc编译为什么要加-g选项
加上-g 选项,会保留代码的文字信息,便于调试下面两幅图是有无 -g 选项调试的区别(我是用的是cgdb,比gdb稍微好用一点,文章结束附带cgdb下载教程)先来一段简单的代码:如果使用 gcc test.c, 再使用cgdb调试时的效果是这样的:如果使用 gcc -g test.c, 再使用cgdb调试时的效果是这样的:cgdb安装教程链接...原创 2018-03-27 20:02:00 · 52783 阅读 · 2 评论 -
linux-用户及用户的切换
在linux中用户分为两种:root用户 和 普通用户root 用户在系统内是属于独一无二的超级管理员,(相当于windows 中的system最高权限)而普通用户在相关的操作中需要ROOT的许可。而root 用户可以拥有所有系统权限。用户之间的切换 su切换位root用户 直接输入 su 或者 su - root 然后输入root密码(在输入密码是不会再屏幕显示,但输入是成功的,输完回车即可)切...原创 2018-03-08 18:13:38 · 214 阅读 · 0 评论 -
linux-查看文件内容和几个小工具(cat、mare、lsee、head、tail、echo、>/>>、|、data、cal、bc、tar等)
cat查看一个文件内容 cat + 文件名如果cat后面不加文件名 ,就是读取键盘上的文件,并显示的屏幕文件上如果将cat写成tac 则显示以行为单位逆序more与cat作用基本一样, 空格向下翻屏,b向上翻屏,将整个文件一次性加载到内存上less 看一点加载一点到内存 ,q中途退出, 空格向下翻屏,b向上翻屏,/跟上超找的内容 先后查找head [-n行数] file 显示文件的前n行 缺省时显...原创 2018-03-08 17:56:37 · 439 阅读 · 0 评论 -
linux-几个简单的命令(cd, touch, ls, rm, mv等)
几个基础命令ls 查看目录下面的内容-a (all) 可以查看更多可发现每个目录都有 . 和 ...代表目录本身..代表上一级目录Linux 下以.开头是隐藏文件-l (long) 和ls显示文件一样多,但是更详细-h (human)如果之后跟文件名 只看这个文件的信息-l -h 可写成-lh-r (reverse) 相反顺序显示-1 按一列显示例:lsls -als -a -lls -a -l ...原创 2018-03-08 17:22:47 · 339 阅读 · 0 评论 -
linux-几个重要命令(du, df, top, free, pstack, su, sudo, adduser, password )
du 查看目录大小,配合 -h 选项-h 选项表示对人更友好的显示方式,如果不加-h,就会变成下图的显示方式看起来只是有无单位的区别,在df选项中会更加明显。df 查看磁盘使用情况,配个-h选项不加-h选项加-h选项top:动态观察程序的变化就像是一个linux下的任务管理器,可以显示各个进程对系统资源的使用情况参数:-d :后面可以接秒数,就是整个程序画面更新的秒数。预设是 5 秒;-b :以批...原创 2018-03-16 22:31:36 · 347 阅读 · 0 评论 -
linux-使用命令安装gcc/g++, gdb, vim :配置yum
首先要配置yum源:在CentOS下的Firefox浏览器下输入网址:https://opsx.alibaba.com/mirror页面跳转至点击帮助选择和自己CentOS版本号相同的一条“红线”复制,粘贴到命令行,回车即可(需要网络连接),在yum上文件时也需要网络连接安装gcc:yum install gcc安装g++:yum install gcc-c++安装gdb:普通用户: sudo y...原创 2018-03-17 13:41:11 · 464 阅读 · 0 评论 -
c语言实现通讯录(malloc版)
提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 清空所有联系人 7. 以名字排序所有联系人头文件test.h#ifndef _TEST_H#include<stdio.h>#include<stdlib.h>#include<string.h>typede...原创 2018-03-20 11:57:13 · 295 阅读 · 0 评论 -
环境变量
基本概念环境变量(environment varriables)一般是指在操作系统中用来指定操作系统运行的一些参数比如在编写c/c++代码时,在链接的时候,从来都不知道所链接的静态库动态库在哪,但是照样可以链接成功,生成可执行程序,还有当我们在Linux下任意目录执行ls命令时,都可以正常执行,ls无非也是一个可执行程序,但是我们自己写的可执行程序为什么要加 ./ ?而不能像ls那样不用加 ./ ...原创 2018-04-14 23:43:34 · 203 阅读 · 0 评论 -
linux——配置vim(一键配置)
打开终端,进入到当前用户的家目录,但后输入:wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x回车即可,这时家目录会有.vimrc的隐藏文件,可 ls -a 查看,vim 的变化可以感受一下:注意:需要联网操作...原创 2018-03-27 19:10:27 · 1171 阅读 · 0 评论 -
多线程总结
进程与线程的区别(总结)进程是资源分配的基本单位,线程是cpu调度的基本单位。在同一个进程中可以创建多个线程,这些线程共享整个进程的资源(寄存器、堆栈、上下文),一个进程至少有一个线程。进程的创建调用fork,系统需要为这个进程分配资源,线程的创建调用pthread_create,系统只需要创建该线程的PCB,这个PCB将使用这个进程资源,不用系统分配。正常退出:进程结束后它拥有的所有线程都将销毁...原创 2018-05-06 15:58:37 · 188 阅读 · 0 评论