Linux
qq_45595832
这个作者很懒,什么都没留下…
展开
-
sem线程信号量
sem线程信号量线程信号量使用步骤:(1)定义信号量集合(如:sem_t sem[3]);注:线程信号量集合其实就是一个数组,数组每个元素就是一个信号量。(2)初始化集合中的每个信号量;(3)p、v操作;(4)进程结束时,删除线程信号量集合。1、sem_init初始化信号量1、头文件:#include <semaphore.h>2、函数原型:int sem_init(...原创 2020-04-15 08:26:34 · 343 阅读 · 0 评论 -
mutex线程互斥锁
mutex线程互斥锁1、pthread_mutex_init初始化互斥锁1、头文件:#include<pthread.h>2、函数原型:int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr);3、函数形参: mutex:互斥锁地址(需自定...原创 2020-04-15 08:25:59 · 254 阅读 · 0 评论 -
pthread_cancel/exit(线程退出)
pthread_cancel/exit(线程退出)1、头文件:#include<pthread.h>2、函数原型:被动退出:int pthread_cancel(pthread_t thread);主动退出:void pthread_exit(void *retval); //或使用return直接返回注:pthread_exit类似于exit函数,不过exit是终止整个...原创 2020-04-15 08:25:14 · 1972 阅读 · 0 评论 -
pthread_join(线程等待)
pthread_join(线程等待)1、头文件:#include<pthread.h>2、函数原型:int pthread_join(pthread_t thread, void **retval);3、函数形参: thread:指定要回收的次线程的TID;retval:次线程函数返回的返回值。4、函数返回值:成功返回0,失败返回错误号。5、功能:阻塞等待TID为threa...原创 2020-04-15 08:24:44 · 900 阅读 · 0 评论 -
pthread_create(线程创建)
pthread_create(线程创建)1、头文件:#include<pthread.h>2、函数原型:int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);3、函数形参:thread:存放线程的TID(由pthre...原创 2020-04-15 08:23:56 · 548 阅读 · 0 评论 -
sig(信号)
sig(信号)1、信号的产生:①一个进程向另一进程发送信号;②内核发送信号;③底层硬件发送信号。2、kill 进程号-s sig选项,例:kill 3973 -s SIGKILL 使3973进程终止。注:(1)进程号查询,例:ps –axf | grep demo (其中,demo是正在执行的可执行文件)。(2)在while(1)死循环中,ctrl + C 等价于sig选项的SIGINT(...原创 2020-04-15 08:23:01 · 1393 阅读 · 0 评论 -
sem(信号量API)
sem(信号量API)1、作用:当多个进程/线程进行共享操作时,用于资源保护(互斥+同步操作),以防止出现相互干扰的情况,解决方法为加锁。注:互斥:该进程在操作时其他进程不能操作,不关心操作的顺序问题;同步:多个共享操作时,进程必须要有统一操作的步调,按照一定的顺序来操作。2、信号量的使用步骤:(1)进程调用semget函数创建新的信号量集合,或者获取已有的信号量集合;(2)调用sem...原创 2020-04-02 08:59:53 · 671 阅读 · 0 评论 -
msg(消息队列API)
msg(消息队列API)1、消息队列的特点:(1)传送有格式的消息流;(2)多进程网状交叉通信时,消息队列是上上之选;(3)能实现大规模数据的通信。1、msgget(创建/获取消息队列)1、头文件:#include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h>2、函数原型:int m...原创 2020-04-02 08:59:10 · 1525 阅读 · 0 评论 -
shm(共享内存API)
shm(共享内存API)1、共享内存的特点:(1)减少进入内核空间的次数;(2)直接使用地址来读写缓存时,效率会更高,适用于大数据量的通信。2、共享内存的使用步骤:(1)进程调用shmget函数,创建新的或获取已有共享内存;(2)进程调用shmat函数,将物理内存映射到自己的进程空间;(3)进程调用shmdt函数,取消共享内存的映射;(4)进程调用shmctl函数,释放开辟的那片物...原创 2020-04-02 08:58:14 · 1616 阅读 · 0 评论 -
exec函数簇(创建进程)
exec函数簇(创建进程)1、 头文件:#include <unistd.h>2、 函数原型:int execl(const char *path, const char *arg,(char *) NULL);int execv(const char *path, char *const argv[]);注:一般execv + fork 配合使用。3、 函数形参:path...原创 2020-04-02 08:57:24 · 739 阅读 · 0 评论 -
stat与fstat(获取文件信息)
stat与fstat(获取文件信息)1、头文件:#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>2、函数原型:int stat(const char *pathname, struct stat *statbuf);int fstat(int fd, struct stat *st...原创 2020-04-02 08:56:22 · 362 阅读 · 0 评论 -
mmap(存储映射)
mmap(存储映射)1、头文件:#include <sys/mman.h>2、函数原型:void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);3、函数形参:addr:指定文件应被映射到的进程空间的起始地址;length:共享内存映射的有效文件大小(字节数),须<=文...原创 2020-04-02 08:55:24 · 412 阅读 · 0 评论 -
进程间通信方式概述
进程间通信方式概述进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其他数据库中的某些表...原创 2020-03-31 08:17:33 · 135 阅读 · 0 评论 -
如何实现守护进程
文章划分为四个部分守护进程的概念。认识实现守护进程的相关函数。创建一个守护进程的基本步骤。演示实现守护进程代码。一、守护进程的概念守护进程就是一个脱离于控制终端、进程组与会话并且在后台运行的进程。进程组:每个进程除了有一进程ID之外,还属于一个进程组。进程组是一个或多个进程的集合,每一个进程有一个唯一的进程组ID。进程组ID类似于进程ID——它是一个正整数,并可存放再pid_t数...转载 2020-03-25 09:12:00 · 619 阅读 · 0 评论 -
多任务、进程、线程
1、什么叫做多任务?IT系统,同时完成多项任务处理,这个同时指的是同一段时间内,而不是同一瞬时。多任务处理是指用户可以在同一时间内运行多个应用程序,每个应用程序被称作一个任务.Linux、windows就是支持多任务的操作系统,比起单任务系统它的功能增强了许多。当多任务操作系统使用某种任务调度策略允许两个或更多进程并发共享一个处理器时,事实上处理器在某一时刻只会给一件任务提供服务。因为任务调...原创 2020-03-17 09:20:12 · 152 阅读 · 0 评论 -
Linux fcntl
功能描述:根据文件描述词来操作文件的特性。文件控制函数 fcntl – file control头文件:#include <unistd.h>#include <fcntl.h>函数原型:int fcntl(int fd, int cmd);int fcntl(int fd, int cmd, long arg);int fcntl(int...原创 2020-03-15 16:45:40 · 154 阅读 · 0 评论 -
fcntl、mmap(存储映射)
一、 fcntl1、头文件:#include <unistd.h>#include <fcntl.h>2、函数原型:intfcntl(intfd, intcmd);intfcntl(intfd, intcmd, long arg);intfcntl(intfd, intcmd, struct flock *lock);3、函数内形参:fd:文件描述词;cmd:操作...原创 2020-03-11 08:30:14 · 179 阅读 · 0 评论 -
嵌入式网络编程+嵌入式Linux系统
嵌入式网络编程+嵌入式Linux系统一、 Linux操作系统安装与使用(命令)二、 Linux开发工具(gcc、gdb、make)三、 Linux系统编程(文件、进程、线程、网路、数据库)Linux平台:Linux C/C++软件工程师库、中间件开发:Linux C服务器开发、GUI开发:Linux C++/Qt学习前提:会使用Linux操作系统;熟悉使用C四、 Linux内核开发...原创 2020-03-06 08:16:00 · 86 阅读 · 0 评论 -
嵌入式网络编程+嵌入式Linux系统
嵌入式网络编程+嵌入式Linux系统Linux操作系统安装与使用(命令)Linux开发工具(gcc、gdb、make)Linux系统编程(文件、进程、线程、网路、数据库)Linux平台:Linux C/C++软件工程师库、中间件开发:Linux C服务器开发、GUI开发:Linux C++/Qt学习前提:会使用Linux操作系统;熟悉使用CLinux内核开发(文件、进程、线程、网路...原创 2020-03-04 08:21:13 · 306 阅读 · 0 评论 -
嵌入式网络编程+嵌入式Linux系统
嵌入式网络编程+嵌入式Linux系统Linux操作系统安装与使用(命令)Linux开发工具(gcc、gdb、make)Linux系统编程(文件、进程、线程、网路、数据库)Linux平台:Linux C/C++软件工程师库、中间件开发:Linux C服务器开发、GUI开发:Linux C++/Qt学习前提:会使用Linux操作系统;熟悉使用CLinux内核开发(文件、进程、线程、网路...原创 2020-02-28 08:27:24 · 101 阅读 · 0 评论 -
find高级用法
命令概述find命令可以根据给定的路径和表达式查找的文件或目录。find参数选项很多,并且支持正则,功能强大。和管道结合使用可以实现复杂的功能,是系统管理者和普通用户必须掌握的命令。find如不加任何参数,表示查找当前路径下的所有文件和目录,如果服务器负载比较高尽量不要在高峰期使用find命令,find命令模糊搜索还是比较消耗系统资源的。exec解释:-exec 参数后面跟的是comm...转载 2019-11-24 21:46:49 · 733 阅读 · 0 评论 -
find命令
命令概述find 查找目录和文件Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。 在运行一个非常消耗资源的find命令时,很多人都...转载 2019-11-24 21:45:19 · 216 阅读 · 0 评论 -
which命令
命令概述查找环境变量中的文件which 命令用于查找并显示给定命令的绝对路径,环境变量 PATH 中保存了查找命令时需要遍历的目录。which 指令会在环境变量 $PATH 设置的目录里查找符合条件的文件。也就是说,使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。命令格式which [选项] 执行文件名 […]常用选项查找环境变...转载 2019-11-24 21:43:59 · 103 阅读 · 0 评论 -
Linux常用命令笔记
1、centos 是将RedHat发行的源代码重新编译一次,形成一个使用的二进制版本。RedHat两大Linux系列:FedoraCore系列,主要用于桌面系统;收费的Enterprise系列,RedHat Enterprise Linux 简写RHEL。2、使用Xmanager启动图形界面 a)启动cmd控制台,使用:config 查看本机IP b)在shell端 export ...原创 2019-11-16 14:20:18 · 119 阅读 · 0 评论 -
Linux-seq命令
seq命令用于以指定增量从首数开始打印数字到尾数,即产生从某个数到另外一个数之间的所有整数,并且可以对整数的格式、宽度、分割符号进行控制。语法:[1] seq [选项] 尾数[2] seq [选项] 首数 尾数[3] seq [选项] 首数 增量 尾数选项:-f, --format=格式 使用printf 样式的浮点格式-s, --separator=字符串 使...原创 2019-11-16 14:15:51 · 147 阅读 · 0 评论 -
Linux-find命令
find命令会根据我们给的option,从给出目录开始对其中文件及子目录下文件进行递归搜索,命令中寻找条件可以是单个,也可以是用逻辑运算符not,and,or 组成的复合条件。1、 and ,逻辑与,在命令中用“-a”表示,是系统缺省选项,表示所有条件都满足find -name ‘tmp’ -type d -user ‘centoslive’寻找tmp 文件,文件属性为目录,归属用户...原创 2019-11-16 14:13:15 · 87 阅读 · 0 评论 -
head命令
命令概述head命令用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。命令格式用法:head [选项]… [文件]…将每个指定文件的头10 行显示到标准输出。如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。如果不指定文件,或者文件为"-",则从标准输入读取数据。长选项必须使用的参数对于短选项时也是必需使用的。常用选项-c, -...原创 2019-11-02 15:51:51 · 366 阅读 · 0 评论 -
less命令
命令概述less 与more命令类似,但可以通过翻页键查看上下页的内容less命令的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。命令格式less [参数] [文件]常用选项-b&...原创 2019-11-02 15:49:58 · 251 阅读 · 0 评论 -
more命令
命令概述more命令用于将内容较长的文本文件内容(不能在一屏显示完)进行分屏显示,并且支持在显示时定位关键字。而对于内容较少的文本文件内容则推荐使用cat命令查看more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且...转载 2019-11-02 15:48:23 · 434 阅读 · 0 评论 -
egrep命令
命令概述egrep命令用于在文件内查找指定的字符串。egrep执行效果与grep -E相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。egrep是用extended regular expression语法来解读的,而grep则用basic regular expression 语法解读,extended regular expression比basic re...转载 2019-10-26 22:12:25 · 356 阅读 · 0 评论 -
grep命令
命令概述Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。grep命令的选项用于对搜索过程的补充,而其命令的模式十分灵活,可以是变量、字符串、正则表达式。需要注意的是:一当模式中包含了空格,务必要用双引号将其引...转载 2019-10-26 22:09:37 · 109 阅读 · 0 评论 -
sed命令详解
sed:Stream Editor文本流编辑,sed是一个“非交互式的”面向字符流的编辑器。能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上。还可以对原文件改动,但是不会再屏幕上返回结果。sed命令的语法格式:sed的命令格式: sed [option] 'sed command’filenamesed的脚本格式:sed [opti...原创 2019-10-26 21:36:07 · 118 阅读 · 0 评论 -
运维工程师-shell脚本编程
运维工程师-shell脚本编程Shell:命令解析器(1、命令解析;2、调用相应的功能)脚本的作用:批处理Shell的作用:解决复杂的命令操作运行shell的三种方法:1、sh 2、bash (交互式)3、chmod u+x(非交互式)Shell的变量(字符串):1、自定义变量、2、默认变量、3、 内置变量(env)1、变量赋值时,“=”两边不能有空格2、echo :输出命令3、可以...原创 2019-10-19 22:47:58 · 343 阅读 · 0 评论 -
shell脚本[] [[]] -n -z 的含义解析
1、在中括号中,判断变量的值, 加不加双引号的问题?-z 判断 变量的值,是否为空; zero = 0变量的值,为空,返回0,为true变量的值,非空,返回1,为false-n 判断变量的值,是否为空 name = 名字变量的值,为空,返回1,为false变量的值,非空,返回0,为truepid=“123”[ -z “$pid” ] 单对中括号变量必须要加双引号[[ -z...转载 2019-10-19 22:45:38 · 165 阅读 · 0 评论 -
shell
Shell是一个用C语言编写的程序,通过Shell用户可以访问操作系统内核服务,类似于DOS下的command和后来的cmd.exe。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量、参数、函数、流程控制等等。它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,s...转载 2019-10-19 22:43:32 · 67 阅读 · 0 评论 -
Linux-vim
vim操作转载 2019-09-19 15:29:19 · 61 阅读 · 0 评论 -
vim的基本使用方法及相关命令
vim编辑器的三种模式:一般模式、编辑模式和命令行模式。在一般模式中可以进行删除、复制和粘贴的功能,但是无法编辑文件内容。从一般模式切换到编辑模式可以按下i、I、o、O、a、A、r、R键。按下Esc键可以回到一般模式。在一般模式中输入:、/、?三个中的任意一个可以将光标移到最下面的一行。在这个模式中可以提供查找数据的操作,而读取、保存、大量替换字符、离开vii、显示行号等操作则是在此模式中完成的...原创 2019-09-19 18:56:51 · 367 阅读 · 0 评论 -
Linux开发工具 编译器gcc(编译选项、静态库和动态库的制作与使用)
Linux开发工具编译器gcc(编译选项、静态库和动态库的制作与使用1、gcc特点:能够实现交叉编译交叉编译:在当前cpu平台能够编译出其他cpu平台运行的代码预处理、编译、汇编、链接Pc:x86体系结构 a.out移动终端 arm体系结构预处理:1、头文件展开2、<>3、“”4、宏替换5、条件编译6、预处理指令常用编译选项静态库和动态库的制作与使用1...原创 2019-09-26 15:47:11 · 332 阅读 · 0 评论 -
Linux编辑器vi-vim
1.简介vi是linux系统下简单易用的编辑器之一,几乎所有linux操作系统都自带vi编辑器。在终端中敲入vi 文件名,就可以打开编译器,类似windows系统下的记事本,功能强大,使用方便。2.vi的模式vi有三种模式:(1)命令行模式用户在用vi编辑文件时,首先进入的就是命令行模式。在该模式中用户可以通过上下移动光标进行复制、粘贴等操作,但无法编辑文字。(2)插入模式用户通过输...转载 2019-09-28 10:59:29 · 170 阅读 · 1 评论 -
Linux调试器-gdb的使用
如何用gdb运行一个程序格式:gdb ./程序名例: gdb ./main程序名后边不需要参加参数,因为参数的获取在这里无效,这里仅仅加载可执行程序信息进入gdb调试之后的命令操作:退出:ctrl + d 或 quit1.r/run:运行程序2.n/next:逐步调试,如果遇到函数,跳过函数,直接完成功能3.s/step:逐条调试,如果遇到函数,进入函数,一步一步执行4.brea...原创 2019-09-28 11:08:15 · 72 阅读 · 0 评论