Linux
沈二月
← ←
展开
-
进程的虚拟地址空间
Linux进程虚拟地址空间是linux内存管理的一个重要部分。总的虚拟地址空间通常按3:1的比例划分,其中1G分给内核,3G分给用户。由低地址到高地址分别为: 只读段:该部分空间只能读,不可写;(包括:代码段、rodata 段(C常量字符串和#define定义的常量) )数据段:保存全局变量、静态变量的空间; 堆:就是平时所说的动态内存, malloc/ralloc/cal原创 2016-07-13 19:44:24 · 708 阅读 · 0 评论 -
网络编程的相关函数2
8、 大端模式、小端模式大端模式:低字节放在低地址,高字节放在高地址小端模式:低字节放在高地址,高字节放在低地址字节序的转化函数头文件:#include 从主机发送到网络:uint32_t htonl(uint32_t hostin32);//32位数据传送,从主机到网络 uint16_t htonl(uin原创 2016-11-08 11:58:54 · 220 阅读 · 0 评论 -
进程的相关知识
概念 Linux系统是一个多进程的系统,它的进程之间具有并行性、互不干扰等特点。 也就是说,每个进程都是一个独立的运行单位,拥有各自的权利和责任。其中,各个进程都运行在独立的虚拟地址空间,因此,即使一个进程发生异常,它也不会影响到系统中的其他进程。进程的ID#include #include pid_t getpid(void) //获取本进程ID。pid_t g原创 2016-10-27 22:31:50 · 248 阅读 · 0 评论 -
Linux中的文件系统
1.Linux磁盘分区和目录 Linux发行版本之间的差别很少,差别主要表现在系统管理的特色工具以及软件包管理方式的不同。目录结构基本上都是一样的。 Windows的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如:C,D,E,F等。Linux的文件结构是单个的树状结构.可以用tree进行展示。 在Ubuntu下安装tree(sudo apt-get install原创 2016-10-05 18:26:00 · 761 阅读 · 0 评论 -
消息队列的相关知识
消息队列就是一个消息的链表。可以把消息看做一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向中按照一定的规则添加新信息,对消息队列有读权限的进程可以从消息队列中读走消息,消息队列是随内核持续的。消息队列就是一个消息的链表。每个消息队列都有一个队列头,用结构struct msg_queue来描述。队列头中包含了该消息队列的大量信息,包括消息队列键值,用户ID,组ID,消原创 2016-10-28 20:22:59 · 304 阅读 · 0 评论 -
LINUXC--TCP的客户端/服务器代码
下面是TCP的客户端/服务器的简单例子: 客户端的程序如下:#include #include #include #include #include #include #include #include #define portnumber 3333 int main(int argc, char *argv[])原创 2016-11-10 11:20:50 · 411 阅读 · 0 评论 -
守护进程(管道通信实现)
创建两个进程,一个有名管道。一个进程如果正在运行就往管道里面发送运行信息,守护进程负责读取运行信息,一旦守护进程超过三秒读取不到运行信息,就自动将进程重启守护进程代码:[objc] view plain copy print?#include #include #include #include原创 2016-10-29 20:34:00 · 628 阅读 · 0 评论 -
Linux下的目录及其操作命令(创建和删除目录的命令
1.mkdir命令该命令用来创建目录 1)一般格式 mkdir [选项] dirname 2)说明 该命令创建由dirname命名的目录。如果在目录名前面没有加任何路径名,则目录创建在该文件下;如果给出目录,那么在指定的目录下创建目录 3)常用选项 -p 一次可建立多个目录2.rmdir命令该命令用来删除空的子目录 1)一般格式 rmdir原创 2016-10-07 21:15:09 · 747 阅读 · 1 评论 -
Linux 用pv操作和共享内存实现生产者与消费者机制
Linux 用pv操作和共享内存实现生产者与消费者机制2016-10-29 21:38 15人阅读 评论(0) 收藏 举报 分类:Linux(8) 版权声明:本文为博主原创文章,未经博主允许不得转载。转载 2016-10-30 22:38:01 · 2218 阅读 · 0 评论 -
Linux下的目录及其操作命令(改变工作目录和显示目录内容的命令
1.cd命令该命令用来工作目录 1)一般格式 cd [dirname] 2)说明 该命令带有唯一参数,即表明目标目录路径名。 为了从系统中的任何地方返回到主目录,可以使用不带任何参数的cd命令2.pwd命令该命令显示出当前工作目录的绝对路径 1)一般格式 pwd 2)说明 该命令不带任何参数3.ls命令该命令列出指定目录的原创 2016-10-08 18:28:41 · 2884 阅读 · 0 评论 -
线程的相关知识
概念 1.线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。 2.一个进程由几个线程组成(拥有很多相对独立的执行流的用户程序共享应用程序的大部分数据结构),线程与同属一个进程的其他的线程共享进程所拥有的全部资源。 3.进程——资源分配的最小单位,线程——程序执行的最小单位 4.进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程原创 2016-10-31 23:08:22 · 213 阅读 · 0 评论 -
数据结构(二)——单链表的概念和读取元素
线性表的链式存储结构的特点:用一组任意存储单元存储线性表的数据元素,存储单元可以是连续的,也可以是不连续的。在链式结构中,不仅要存储数据元素,还有存储其后继元素的地址。我们将数据元素的域称为数据域,后者的域称为指针域,两者组成的数据元素ai的存储映像称为结点(Node)。通常我们将第一个结点的存储位置叫做头结点,规定最后一个结点的指针为空(通常用NULL或“^”原创 2016-11-13 21:57:20 · 469 阅读 · 0 评论 -
线程的相关知识2
pthread_mutex_init 函数作用:初始化互斥锁 函数原型:init pthreaad_mutex_init(pthread_mutex_t *restrict mutex,const pthread_mutex *attr_t) 函数参数:mutex:互斥锁 attr_t:快速互斥锁 返回值:成功为0,失败pthread_mutex_lock 函数作用:对原创 2016-11-01 21:03:57 · 281 阅读 · 0 评论 -
Linux c==几种进程间通信方式的特点对比
linux上面的IPC大多都是从UNIX上面继承而来。 最初Unix IPC包括:管道、FIFO、信号。System V IPC包括:System V消息队列、System V信号灯、System V共享内存区。由于Unix版本的多样性,电子电气工程协会(IEEE)开发了一个独立的Unix标准,这个新的ANSI Unix标准被称为计算机环境的可移植性操作系统界面(PSOIX)。现有大部分Uni原创 2016-11-29 20:17:39 · 2187 阅读 · 0 评论 -
Linux c==静态链接的空间和地址分配
多个文件链接在一起的时候,会做到相似段合并,数据段在一起,代码段在一起。 这样能节省空间,对于x86的硬件来说段的装载地址和空间的对齐单位是页,是4096个字节,如果一个个段分开存放,会造成大量的内部碎片。链接器为目标文件分配空间和地址: 【1】输出的可执行文件的空间 【2】装载后的虚拟地址的虚拟地址空间a.c#include extern int shared;原创 2016-11-20 15:59:51 · 430 阅读 · 0 评论 -
Linux C——获取当前目录的方法
两种方法:1. 利用getcwd()函数取得当前工作目录(相当于windows下的GetCurrentDirectory)2. 取得实际文件目录(相当于windows下的GetModuleFileName())原理:每个进程在/proc下都有一个以进程号命名的目录。在该目录下有exe文件,该文件是一个链接文件,它指向的路径就是该进程的全路径.用readlink()读原创 2016-11-21 22:25:46 · 1135 阅读 · 0 评论 -
进程间通信方式
1)管道 管道分为有名管道和无名管道 无名管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用.进程的亲缘关系一般指的是父子关系。无明管道一般用于两个不同进程之间的通信。当一个进程创建了一个管道,并调用fork创建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端,这样提供了两个进程之间数据流动的一种方式。 有名管道也是一种半双工的通信方式,但是它允原创 2016-12-12 22:25:16 · 211 阅读 · 0 评论 -
解决centOS7以上版本防火墙关闭失败的问题
关闭防火墙:systemctl stop firewalld.service 禁止开机自启:systemctl disable firewalld.service 查看防火墙状态:firewall-cmd --state执行关闭防火墙:systemctl stop firewalld.service命令,后查看防火墙状态,仍显示运行!解决方法:执行以下命令(不行就重复执行几次)pki...原创 2018-12-08 18:25:30 · 4211 阅读 · 0 评论 -
信号量的相关知识
概念 信号量(又名:信号灯)与其他进程间通信方式不大相同,主要用途是保护临界资源. 分类: 二值信号灯:信号灯的值只能取0或1 计数信号灯:信号灯的值可以取任意非负值 使用信号灯 1.打开或创建信号灯 2信号灯值操作 3.获得或设置信号灯属性 信号API 1.semget 函数作用:创建信号量 函数原型:int semget(key_t key, i原创 2016-10-26 21:06:34 · 296 阅读 · 0 评论 -
Linuxc网络编程的相关函数
1、 socket函数的作用:建立一个新的socket套接字函数的原型:int socket(int domain,int type, int protocol)函数的参数:domian:表示使用何种地址类型 AF_INET,IPV4网络协议 AF_INET6,IPV6网络协议原创 2016-11-07 18:13:34 · 286 阅读 · 0 评论 -
ELF文件分析
ELF(Executable and Linkable Format)即可执行连接文件格式,是一种比较复杂的文件格式,但其应用广泛。与linux下的其他可执行文件(a.out,cof)相比,它对节的定义和gnu工具链对它的支持使它十分灵活,它保存的足够了系统相关信息使它能支持不同平台上的交叉编译和交叉链接,可移植性很强.同时它在执行中支持动态链接共享库。 通过本文,可以大致了解Linux系统中ELF格式文件的分类,组成,作用,以及其中包含的内容。另外后面介绍了几种常用的对elf文件进行操作的工具,并且对其转载 2016-07-09 09:49:32 · 869 阅读 · 0 评论 -
vimrc 配置详解
详解vimrc的存放位置: 系统 vimrc 文件: "$VIM/vimrc" 用户 vimrc 文件: "$HOME/.vimrc" 用户 exrc 文件: "$HOME/.exrc" 系统 gvimrc 文件: "$VIM/gvimrc" 用户 gvimrc 文件: "$HOME/.gvimrc" 系统菜单文件: "$VIMRUNTIME/menu.vim" $原创 2016-09-16 19:05:10 · 1294 阅读 · 0 评论 -
Linux下的目录及其操作命令(链接文件的命令
Linux具有为一个文件起多个名字的功能,称为链接。被链接的文件可以存放在相同目录下,但是必须有不同的文件名,而不用在硬盘上为同样的数据重复备份。被链接的文件可以有相同的文件名,但是不能放在相同目录下,这样只改变一个目录下的该文件,就完成了所有目录下同名链接文件的修改。 文件链接有两种形式,即硬链接和符号链接1.硬链接建立硬链接时,在别的目录或本目录中增加目标文件的一个目录项,原创 2016-10-09 21:22:18 · 372 阅读 · 0 评论 -
Linux下的目录及其操作命令(改变文件或目录存取权限的命令
使用文件命令对文件进行操作的前提是拥有相应的权限1.用户和权限1)文件主 Linux为文件都分配一个文件所有者,称为文件主,并赋予文件主唯一的注册名。对文件的控制取决于文件主或超级用户。 文件或目录的创建者对创建的文件或目录拥有特别使用权。 利用chown命令可以更改某个或目录的所有权。2)用户组 当系统管理员为用户建立账号之后,会分配一个组ID和一个特定的原创 2016-10-10 22:02:42 · 782 阅读 · 0 评论 -
Linux下的目录及其操作命令(改变用户组和文件主的命令
1.chgrp命令给命令改变文件或目录所属的用户组 1)一般格式 chgrp 【选项】 组名 文件名2)说明 该命令用来改变文件所属的用户组。其中,组名可以是用户组ID或用户组的组名。3)常用选项 -R 递归式的改变指定目录及其下面的所有子目录和文件的用户组。2.chmod命令该命令改变某个文件或目录的所有者和所属的组 1)一般格式原创 2016-10-11 12:12:58 · 288 阅读 · 0 评论 -
Linux下的内存分配
在空间中的内存分配如图所示 通过以下程序可以更加清晰的看出地址之间的联系:#include int add(int a, int const e){ int c; int d = 0; static f = 1; c = a + e; printf("local(null) &c = %p\n", &c); printf("原创 2016-10-21 20:14:01 · 235 阅读 · 0 评论 -
Linux下的联机帮助命令
1.man命令给命令格式化并显示某一命令的联机帮助手册页 1)一般格式 man 【选项】 命令名2)说明 命令名称为参数。3)常用选项 -M 路径 -P 命令 -S 章节 -D 既显示手册页内容,也显示检查信息2.help命令该命令可以查看所有shell内置命令的帮助信息 1)一般格式 help 命令2)说明原创 2016-10-12 12:59:27 · 5514 阅读 · 0 评论 -
数据库的相关知识
数据库1、 Sqlite3_open函数的作用:打开一个数据库函数的原型:int sqlite_open(const char *dbname, sqlite **db)函数的参数:dbname:数据库的名称 db:数据库的句柄返回值:操作成功:SQLITE_OK;头文件:#include 2、 sq原创 2016-11-02 22:15:07 · 217 阅读 · 0 评论 -
线程的相关知识3
头文件:#include sem_init 函数的作用:初始化信号量 原型:int sem_init(sem_t *sem,int pshared,unsigned int value) 参数:sem:信号量指针 pshared:0 value:信号量的初始化 返回值:成功:0,出错-1 信号量的PV操作,销毁原创 2016-11-03 10:37:19 · 202 阅读 · 0 评论 -
管道的相关知识
1)特点: 1.管道是单向的、先进先出的,它把一个进程的输出和另一个进程的输入连接在一起。 2.一个进程(写进程)在管道的尾部写入数据,另一个进程(读进程)从管道的头部读出数据 3.管道提供了简单的流控制机制,进程试图读空管道时,进程将阻塞。同样,管道已经满时,进程再试图向管道写入数据,进程将阻塞 4.管道包括无名管道和有名管道两种,前者用于父进程和子进程间的通信,后者可用于运行于原创 2016-10-22 22:32:16 · 272 阅读 · 0 评论 -
linuxc编程学习
进程编程学习总结:1、进程与程序的区别(1)进程是动态的,程序是静态的(2)进程是暂时的,程序是长久的(3)进程与程序组成不同:进程的组成包括程序、数据和进程控制块(4)进程与程序的对应关系:通过多次执行,一个程序可对应多个进程; 通过调用关系,一个进程可包含多个程序;2、什么是死锁?原创 2016-10-23 22:39:00 · 267 阅读 · 0 评论 -
Linux下的有关进程管理的命令
1.ps命令给命令查看当前系统中运行的进程信息 1)一般格式 ps 【选项】2)说明 该命令是查看进程状态的最常用的命令,它提供关于进程的许多信息。3)常用选项 -a 显示系统中与tty相关的所有进程的信息 -e 显示所有进程的信息 -f 显示进程的所有信息 -l 以长格式显示进程信息2.kill命令该命令用来终止一个进程的运行原创 2016-10-13 12:13:37 · 273 阅读 · 0 评论 -
多线程的同步和互斥
1.互斥锁的定义互斥锁,是一种信号量,常用来防止两个进程或线程在同一时刻访问相同的共享资源。从本质上讲,互斥量是一把锁,该锁保护一个或者一些资源。一个线程如果需要访问该资源,必须要获得互斥量对其加锁。这时,如果其他线程想访问该资源也必须要获得该互斥量,但是锁已经加锁,所以这些进程只能阻塞,直到获得该锁的进程解锁。这时阻塞的线程里面有一个线程获得该互斥量并加锁,获准访问该资源,其他进程继续阻原创 2016-11-04 12:04:55 · 249 阅读 · 0 评论 -
信号的相关知识
1.信号类型 信号事件的发生有两个来源:硬件来源和软件来源。下面是几种常见的信号: § SIGHUP: 从终端上发出的结束信号 § SIGINT: 来自键盘的中断信号(Ctrl-C) § SIGSTOP:来自键盘(Ctrl-Z)或调试程序的停止执行信号,暂停进程 § SIGKILL:该信号结束接收信号的进程,杀死进程 § SIGTERM:kill 命令发出的信号原创 2016-10-24 20:35:38 · 224 阅读 · 0 评论 -
Linux下的文件压缩和解压缩命令
1.gzip命令给命令对文件进行压缩和解压缩 1)一般格式 gzip 【选项】 【name···】2)说明 name表示压缩文件名。3)常用选项 -c 将输出写到标准输出上,并保留原有文件 -d 将被压缩的文件解压缩 -l 对每个压缩文件,列出以下字段: ·压缩文件大小 ·未压缩文件大小 ·压缩比 ·未压缩文件的名字 -v 对每个原创 2016-10-14 14:04:57 · 257 阅读 · 0 评论 -
共享内存的相关知识
共享内存实现分为两个步骤: 1、创建共享、打开共享内存,使用shmget函数 2、映射共享内存,将这段创建的共享内存映射到具体的进程空间去,使用shmat函数 3. 分离共享内存 4. 控制、删除共享内存 共享内存的函数实现 共同头文件#include #include #include 1231231.shmget 函数作用:在内核创建共享内存 函原创 2016-10-25 22:50:52 · 342 阅读 · 0 评论 -
带缓存的和不带缓存的I/O操作
1.creat 函数函数的作用:创建一个文件 函数的原型: int creat(const char *filename, mode_t mode) 函数的参数:mode 为创建模式:可读:S_IRUSR 可写: S_IWUSR头文件:#include #include #include 12341234返回值:成功:新的文件描原创 2016-10-16 22:21:31 · 349 阅读 · 0 评论 -
Linux学习笔记
1、学习阶段:初:入门知识(系统基础)中:系统管理、服务安全及服务管理、Shell脚本编程高:MySQL数据库:cache &storage2、集群:Cluster(重要)lb: 4layer、7layerHa:分布式:Zookeeper分布式文件系统虚拟化技术:xenkvmOpenstack:IAAS云:运维...原创 2019-05-21 17:19:15 · 365 阅读 · 0 评论