07 Linux补充|秋招刷题|9月6日

目录

Linux

结构体内存字节对齐

静态变量static

空指针


Linux

结构体内存字节对齐

结构体内存字节要对⻬:

32位系统:4 8 32;64位系统:8 16 24

字节对⻬:字节对⻬是指在计算机中,各种类型数据按照⼀定的规则在空间上排列,以满⾜硬件平台对存储空间的处理要求。

静态变量static

(1)在修饰变量的时候,static 修饰的静态局部变量只执⾏初始化⼀次,⽽且延⻓了局部变量的⽣命周期,直到程序运⾏结束以后才释放。

(2)static 修饰全局变量的时候,这个全局变量只能在本⽂件中访问,不能在其它⽂件中访问,即便是 extern 外部声明也不可以。

(3)static 修饰⼀个函数,则这个函数的只能在本⽂件中调⽤,不能被其他⽂件调⽤。static 修饰的变量存放在全局数据区的静态变量区,包括全局静态变量和局部静态变量,都在全局数据区分配内存。初始化的时候⾃动初始化为 0。

(4)不想被释放的时候,可以使⽤static修饰。⽐如修饰函数中存放在栈空间的数组。如果不想让这个数组在函数调⽤结束释放可以使⽤ static 修饰。

(5)考虑到数据安全性(当程序想要使⽤全局变量的时候应该先考虑使⽤ static)。

栈区:先⼊后出(FILO)⾃动分配释放

队列:先⼊先出

malloc⽤法:开辟空间

free():释放malloc开辟的空间

动态分配内存原则:

(1)谁建⽴,谁释放;

(2)在程序设计时,应当预留⾜够的内存空间以避免频繁地进⾏内存分配和释放。


dmesg | tail        该命令会输出系统日志的最后10行

cat /proc/cpuinfo        显示CPU info的信息

cat /proc/interrupts        显示中断

cat /proc/meminfo        校验内存使用

cat /proc/swaps        显示哪些swap被使用

cat /proc/version        显示内核的版本

cat /proc/net/dev        显示网络适配器及统计

cat /proc/mounts        显示已加载的文件系统

clock -w        将时间修改保存到 BIOS


Linux系统下文件的是:目录文件、普通文件、设备文件

用“rm -i ”系统会提示“是否真的删除”

列出一个目录下的所有文件需要使用命令 ls -a

在 Mac OS系统中怎样获取当前文件夹的路径?打开 terminal,把文件拖进terminal 窗口,自动显示路径。

空指针

每一个指针类型都有一个特殊的值-----“空指针”。空指针与同类型的其他指针值都不同,它“保证与任何对象或函数的指针值都不相等”,也就是说空指针不会指向任何地方,它不是任何对象或函数的地址。简单点说,一个指针不指向任何数据,我们就称之为空指针,空指针用NULL表示。

int* p=NULL;

我们用空指针NULL来初始化指针变量。

(1)我们常用的动态内存开辟函数,如malloc,calloc,realloc,如果它们开辟动态内存失败就会返回空指针,所以动态开辟函数后,都要判断是否开辟成功。

(2)空指针不等同于未初始化的指针,未初始化的指针通常指野指针,即空指针不是野指针,野指针可以指向任何地方(乱指一气),可能会造成非法访问内存地址,而空指针它不指向任何对象。

(3)在源码中用来表示空指针的常量是整数0,NULL使指针指向0,大多数系统中都将0作为不被使用的地址(所以上面才说NULL不指向任何数据),但也有些系统会使用0,任何把NULL定义为其它任意值,所以也不能认为NULL就等于0。

你可能感兴趣的:(基地实训,linux,运维,服务器)