自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 系统的种种杂七杂八(顺序阅读六)

一、系统库为获得服务和用户信息而访问的配置文件(一)系统日志1、大多数系统程序将它们的日志信息输出到syslog服务。2、rsyslog的基础配置文件时/etc/rsyslog.conf,还会在其他地方发现。内容是:传统规则 和rsyslog扩展(以$开头的都时扩展),配置文件需要正确配置设施或优先级。3、故障排除:测试系统日志使用logger命令手动发送日志消息$ logge

2016-11-23 16:12:53 334

原创 用户进程init(顺序阅读五)

一、initinit主要负责启动和终止系统中的基础服务进程二、systemed1、systemed是面向目标的,定义一个要实现的目标以及它的依赖条件,systemd负责满足所有依赖条件以及执行目标。2、systemed的一个重要特性:它可以延迟一些服务和操作系统功能的开启,直到需要他么的时候再开启。3、systemed运行步骤:加载配置信息,判定启动目标,判定启动目标的

2016-11-22 16:58:36 368

原创 Linux内核的启动(顺序阅读四)

(一)引导装载程序工作1、工作一:将内核加载到内存,工作二:使用一系列内核参数启动内核。完成工作一:1)引导装载程序使用,基本(输入输出系统)(BIOS)或者,(统一可扩展固件接口)(UEFI),来访问磁盘。2)几乎所有磁盘设备都都有固件系统供BIOS通过(线性块寻址)访问硬件。2、完成工作二:1)引导装载程序会向内核传递一系列文本形式的内核参数来设定内核启动方式2)查

2016-11-22 10:58:17 460

原创 硬盘和文件系统(顺序阅读三)

一、分区1、分区工具:parted(文本命令工具,支持MBR和GPT)、gparted(图形版本)、fdisk(支持MBR)、gdisk(支持GPT)2、查看分区表:# parted -l3、更改分区表:两种方式:fdisk:更改分区表之后,fdisk向内核发送一个磁盘系统调用,告诉内核需要重新读取分区表,内核会显示一些调试信息供你使用dmesg查看parted:没有使用

2016-11-21 20:05:55 396

原创 内核管理设备(顺序阅读二)

一、设备的概括(一)1、设备就是文件发人员操作设备就像操作文件。普通用户也可以操作设备。如,Unix标准命令(如cat)可以访问设备。然而件接口对文所能执行的操作是有限制的。2、设备的某一种分类块设备(b)1、:程序从块设备中按固定的块大小读取数据。2、进程能够通过内核访问磁盘上的任意区块。因为磁盘的容量是固定的,索引起来也很方便。字符设备(c)1、:字符设备处理流数据,只

2016-11-21 12:05:30 817

原创 Linux文件结构(特别概念一)

1、在现代操作系统中,要利用大量的程序和数据,由于内存容量有限,且不能长期保存,于是人们想出了把这些数据以文件的形式放在外存中,需要时候将它们调入内存,从此就有了文件系统,它负责管理在外存上的文件,并把存取、共享和保护等手段提供给用户。1)从系统的角度看,文件系统是对文件存储器空间进行组织和分配,负责文件的存储并对存入的文件进行保护和检索的系统;从用户角度看,文件系统的主要目的是实现了对文

2016-11-04 15:41:30 432

原创 shell编程(特别概念五)

1、什么是shell当一个用户登录Linux系统之后,系统初始化程序init就为每一个用户运行一个称为shell的程序。那么shell是什么呢?确切的说,shell是一个命令行解释器,它为用户提供一个像Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止,甚至编写一些程序。用户使用Linux时是通过命令来完成所需要工作的。一个命令就是用户和shell之

2016-11-04 09:12:27 325

原创 函数

函数声明与定义不同函数的声明就是声称一个函数的名字,只是说明函数的名字,不涉及函数的实现,即没有函数体,所以函数的声明只包括前三个部分。函数定义就是确定一个函数的意义,即让函数具有某项功能,但是这里可不是只有函数体,总要指明这个函数体是那个函数的吧,所以函数的定义包含了一个函数的所有部分。下面以一个名为fun的函数为例来说明函数的声明与定义,fun函数的声明如下:int fun(i

2016-11-03 19:30:08 212

原创 预编译——关于#和##

1、在C语言宏中,#的功能是将器后面的宏参数进行字符串化操作,对它所引用的宏变量通过替换后在其左右各加上一个双引号#define WARN_IF(EXP) \do{ if (EXP) \ fprintf (stderr,"Warning:"#EXP"\n");} \while(0)那么实际使用中会出现下面所示的替换过程:WARN_IF (divider == 0);被

2016-11-03 17:04:33 1799

原创 预编译——老二文件包含和老三条件编译

预处理程序提供了条件编译的功能,可以按不同的条件去编译不同的程序部分,因而产生不同的目标代码文件。这对于程序的移植和调试是很有用的。条件编译有三种形式,下面分别介绍。1、第一种形式#ifdef 标识符 程序段1#else 程序段2#endif它的功能是,如果表示符已被#define命令定义过则对程序段1进行编译;否则对程序段2进行编译。如果没有程序段2(它为

2016-11-03 15:13:53 297

原创 预处理——老大宏定义和使用技巧

所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所做的工作。预处理是C语言的一个重要功能,它由预处理程序负责完成的。对当一个源文件进行编译时,系统将自动引用预处理程序中的预处理部分进行处理,处理完毕自动进入对源程序的编译。C语言提供了多种预处理功能,如宏定义、文件包含、条件编译等,合理地使用预处理功能编写的程序便于阅读、修改、移植和调试,也有利于模块程序设计。宏定义是由源程序

2016-11-03 14:27:37 396

原创 内存管理——常见内存错误及对策

发生内存错误是 件麻烦事,编译器不能自动的发现这些错误,通常是在程序运行时才能捕捉到,而这些错误大多没有明显症状,时隐时现增加了改错的难度。1)内存被分配成功,却使用了它。如果指针p是函数的参数,那么在函数的入口处用“assert(p != NULL)"进行检查;如果用malloc或new来申请内存,应该用”if(p == NULL)"或“if (p!=NULL)"进行预防处理。2)内存分

2016-11-02 20:08:25 727

原创 内存管理——数据存放位置和野指针

一、1、未初始化的全局变量(.bss段)bss段用来存放那些没有初始化和初始化为0的全局变量int bass_array[1024 * 1024];int main(int argc, char* argv[]){ return 0;}#gcc -g bss.c -o bss.exe#ls -l bss.exe-rwxrwxr-x 1 root root 597

2016-11-02 16:19:34 463

原创 语句——循环语句的效率

1、在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环的次数。for (col=0; col<5; col++ ){ for (row=0; row<100; row++) { sum = sum + a[row][col]; }}2、如果循环体内存在逻辑判断,并且循环次数很大,宜将

2016-11-02 09:46:36 268

原创 语句——if语句中各种值和零值比较

1、布尔变量和零值比较:if(flag)if(!flag)2、整型变量和零值比较:if (value == 0)if (value != 0)3、浮点变量和零值比较:if ( (x>=-EPSINON) && (x4、指针变量和零值比较:if (p == NULL)if ( p != NULL)

2016-11-02 09:32:28 574

原创 数据类型——变量常量和声明与定义

在C的世界里,不同代码“国度”以.c文件为国界分隔开来,在单个国家里有不同函数占山为王,每个C程序世界里只有一个君主(MAIN),main通过下传指令(参数),调用各种军阀(函数),来掌控。某军阀(函数)心怀叵测,不想单纯听从于main的指挥调度,树立了自己的政权旗帜static。static不同听从于main的调度,自己做主,私藏金库(空间)。不同的国家(不同的.c文件)之间通过exte

2016-11-01 14:21:46 778

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除