linux应用开发-基础
皮诺Kio
这个作者很懒,什么都没留下…
展开
-
linux应用基础知识点17-线程和线程同步
linux应用基础知识点17-线程和线程同步线程线程同步信号量互斥锁条件变量线程一个进程可以有多个线程,一个线程必属于一个进程。进程实现多任务的缺点:1.进程间切换的成本大2.进程间通信麻烦且效率低线程的引入:1.保留了进程多任务的特性2.线程间切换和通信效率更高3.多线程在多核心cpu上可实现真正并发运行。pthread_create函数int pthread_create...原创 2020-04-17 16:13:33 · 192 阅读 · 0 评论 -
linux应用基础知识点16-并发式IO的实现
linux应用基础知识点16-并发式IO的实现非阻塞io多路复用ioselect函数poll函数:异步io:阻塞式io带来的问题:比如当读取键盘和操作鼠标两个事件都是以阻塞方式操作的话,那么两个设备的使用顺序必须严格按照程序的流程走,否则会阻塞住无法走下去。并发式IO的实现方法:1.非阻塞io2.多路复用io3.异步通知(异步io)非阻塞io对于未打开文件在open时使用O_NON...原创 2020-04-17 15:28:40 · 247 阅读 · 0 评论 -
linux应用基础知识点15-IPC之Socket
linux应用基础知识点15-IPC之Socket网络通信TCP协议Socket接口TCP通信创建步骤UDP通信创建步骤网络通信网络通信其实就是位于网络中不同主机上面的2个进程之间的通信。层次:其中网卡是一个串转并设备,它与cpu是并行传输,与网络是串行传输。传输媒介:1.无线:wifi、蓝牙、zigbee、4g/5g等2.有线:双绞线、同轴电缆、光纤等开放系统互连参考模型(简称...原创 2020-04-17 14:58:36 · 352 阅读 · 0 评论 -
linux应用基础知识点14-IPC之共享内存
linux应用基础知识点14-IPC之共享内存用共享内存实现进程间通信,可以省却文件向进程的读取、修改、写回一系列繁琐的操作。而是直接可对该内存空间进行修改。相关函数POSIX和System V均提供了共享内存的实现函数,Linux将两种实现方式均吸纳为己所用。POSIX的函数:shm_open mmap munmap ftruncateSystemV的函数:shmget shmat s...原创 2020-04-17 14:33:29 · 183 阅读 · 0 评论 -
linux应用基础知识点13-IPC之消息队列
linux应用基础知识点13-IPC之消息队列消息队列可以理解为一个消息链表,一个进程可以往该链表的尾部添加特定格式的数据,另一个进程可以从头部取出数据或者按消息的类型取出数据。消息队列和管道的区别:1 . 管道在写入时,必须同时读取,否则会阻塞;消息队列则没有要求。2 . 管道在关闭或进程结束时,数据会丢失;消息队列的生命周期跟随内核,关闭后仍存在。相关函数POSIX和System ...原创 2020-04-17 13:48:01 · 120 阅读 · 0 评论 -
linux应用基础知识点12-IPC之信号量
linux应用基础知识点12-IPC之信号量信号量信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量为正时,说明它空闲;为0时,说明被占用。当一个资源数量为N时,意味着可以允许N个进程/线程同时使用该资源。此时,可以设置该信号量的初值为N。sem_init函数int sem_init(sem_t *sem, int pshared, unsig...原创 2020-04-17 11:18:25 · 160 阅读 · 0 评论 -
linux应用基础知识点11-IPC之信号
linux应用基础知识点11-IPC之信号信号信号信号是内容受限的一种异步通信机制,本质是一个预定义的数字编号。内容受限——只能传递信号值,不能传递更详细的内容。异步——事先并不知道信号何时发生,类似于中断都是突然发生的。发出者:1.终端按键2.硬件异常内核发出信号3.用户发出kill命令4.某些软件条件满足后发出信号,如alarm时钟到时间产生SIGALARM信号,向写端已关闭...原创 2020-04-17 10:54:40 · 155 阅读 · 0 评论 -
linux应用基础知识点10-IPC之管道
linux应用基础知识点10-IPC之管道管道管道进程间的内存是相互隔离的,可以使用管道来实现进程间通信。管道由内核在内核空间维护的一个内存区,该管道提供两个端口,都可以读写(同一时间只能一读一写 或 一写一读,即半双工通信)。无名管道:只能在父子进程间通信,实现步骤如下:1.进程用int pipe(int pipefd[2]);来创建一个管道,返回的pipefd[0] pipefd[...原创 2020-04-17 10:39:44 · 142 阅读 · 0 评论 -
linux应用基础知识点9-进程间通信IPC
linux应用基础知识点9-进程间通信IPC进程间通信是指不同进程间进行信息传播与交换。英文缩写IPC,全称InterProcess Communication。unix系统的操作风格主要分为两大分支:SystemV和BSD。linux博采众长,它的IPC方式:1.unix传统的方式:管道(有名管道和无名管道)、信号2.SystemV的方式:信号量、消息队列、共享内存3.BSD的方式:...原创 2020-04-17 10:34:52 · 188 阅读 · 0 评论 -
linux应用基础知识点8-进程-父子进程-守护进程
linux应用基础知识点8-进程进程父子进程进程的五种状态进程一个程序当它在系统中运行了以后,我们称它为进程。1.每个进程中都有一份环境变量表,该环境变量表一般继承自系统的环境变量(也可以用户自定义)。进程的环境变量表可以通过environ[i][j]全局变量对其访问,也可以通过getenv setenv函数对其操作。系统的环境变量表可以用export命令查看,也用echo $变量名 ...原创 2020-04-17 09:59:53 · 739 阅读 · 0 评论 -
linux应用基础知识点7-虚拟文件系统
linux应用基础知识点7-虚拟文件系统proc文件系统:sys文件系统proc文件系统:proc目录下的文件大小很多都是0,因为该文件本身并不存在,当我们读取这个文件时,内核将内部的一个数据结构读取并生成字符串内容。proc文件系统相当于提供了一个查看系统内部数据的窗口。如/proc/cmdline /proc/cpuinfo /proc/devices /proc/interrup...原创 2020-04-16 17:42:34 · 129 阅读 · 0 评论 -
linux应用基础知识点6-系统时间和随机数
linux应用基础知识点6-系统时间和随机数GMT时间UTC时间点时间和段时间linux系统中的时间time函数(API函数)ctime(标准C函数)gettimeofday和settimeofday函数随机数rand函数GMT时间格林尼治地区的当地时间,作为全球国际时间。UTC时间全球分为二十四个时区,每个时区有自己的时间。UTC时间等于格林尼治时间。北京是东八区,领先UTC八个小时。纽...原创 2020-04-16 17:40:25 · 351 阅读 · 0 评论 -
linux应用基础知识点5-文件的权限
linux应用基础知识点5-文件的权限umaskaccess函数chmod函数chown函数一些终端命令操作符umaskumask文件掩码是系统中维护的一个全局设置,它的作用是设定系统中新创建文件的默认权限的。可以使用umask xxx命令来修改其值。access函数用于检查当前用户对该文件的权限int access(const char *pathname, int mode);m...原创 2020-04-16 17:12:32 · 170 阅读 · 0 评论 -
linux应用基础知识点4-文件的分类和属性
linux应用基础知识点4-文件的分类和属性文本文件和二进制文件目录文件设备文件管道文件:略套接字文件:略符号链接文件各类文件的属性字符文件的属性stat函数fstat函数lstat函数文本文件和二进制文件文本文件是按照一定编码格式存储的文件(其实质也是二进制数字,不过有编码规则可循),二进制文件存储的是纯粹的二进制数字(如gcc生成的bin文件)。linux本身并不区别对待这两种文件,当我...原创 2020-04-16 16:57:06 · 354 阅读 · 0 评论 -
linux应用基础知识点3-文件与流、文件描述符
linux应用基础知识点3-文件与流、文件描述符inode和vnode文件与流文件共享lseek函数dup和dup2函数fcntl函数文件描述符文件描述符重定位硬盘最小单元是扇区(如512字节),然后扇区又组成块(如4k),一个扇区中不可存在两个文件。inode和vnode一个硬盘分成两大区域:一个是硬盘内容管理表,另一个是真正存储的内容。操作系统访问硬盘时,先读取硬盘内容管理表,找到扇区级...原创 2020-04-16 16:33:55 · 409 阅读 · 0 评论 -
linux应用基础知识点2-文件IO和标准IO
linux应用基础知识点2-文件IO和标准IOopen、close、write、read这类API函数构成的一套读写文件的体系,我们称为“文件IO”。应用层C语言库函数提供了一系列读写函数fopen、fclose、fwrite、fread,由文件io封装来的,我们称之为“标准IO”。两者的对比:1.工作效率以write操作为例,文件io会根据硬盘特性,选择合适时间将底层缓冲区文件写入块设备...原创 2020-04-16 15:45:54 · 158 阅读 · 0 评论 -
linux应用基础知识点1-文件IO
linux应用基础知识点1-文件IO文件的“open、r/w、close”过程文件描述符open函数open之阻塞 非阻塞open之O_SYNCread函数write函数exit _exit _EXIT函数errno和perror文件的“open、r/w、close”过程 文件平时存在块设备中的文件系统中,也就是静态文件。当open它时,系统在进程中建立一个数据结构,用来记录下该文件。然后...原创 2020-04-16 15:38:00 · 234 阅读 · 0 评论