Linux
文章平均质量分 58
Gaodes
成功来自点滴的坚持
展开
-
Linux定时器任务cron配置
cron:计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思。在linux中,我们经常用cron服务器来完成这项工作。cron服务器可以根据配置文件的时间来执行特定的任务。crontab语法:crontab(选项)(参数)选项:-e:编辑用户的计时器设置-l:列出用户的计时器设置-r:删除用户的计时器设置-u <用户名称>:指定要设定计时器的用...原创 2020-01-12 17:51:48 · 267 阅读 · 0 评论 -
协程学习
协程是用来维护网路IOepoll与读写IO,同步操作,耗时长epoll与读写IO,异步操作,耗时短每1S钟异步处理的数量高于同步操作异步操作:多线程,多个线程操作一个fd,多个线程操作fd的时候,需要加锁。协程拥有异步的性能,同步的编程方式。协程是在单线程运行,也可以在多线程里面运行,单线程:不需要考虑epoll在多线程里面运行。多线程:需要考虑epoll的状态。协程如...原创 2020-01-12 17:43:31 · 146 阅读 · 0 评论 -
Linux关于管道
管道的概念管道是Unix中最古老的进程间通信的形式。 我们把从一个进程连接到另一个进程的一个数据流称为一个“管道” 我们通常把是把一个进程的输出连接或“管接”(经过管道来连接)到另一个进程的输入。管道特点管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程)进行通信;通常,一个管道由一个进程创建,然后该进程调用...原创 2018-09-14 12:22:41 · 517 阅读 · 0 评论 -
Linux关于进程间通信共享内存
共享内存概念共享内存允许两个不相关的进程去访问同一部分逻辑内存 如果需要在两个运行中的进程之间传输数据,共享内存将是一种效率极高的解决方案共享内存是由IPC为一个进程创建的一个特殊的地址范围,它将出现在进程的地址空间中。 其他进程可以把同一段共享内存段“连接到”它们自己的地址空间里去。 所有进程都可以访问共享内存地址,就好像它们是有malloc分配的一样 如果一个进程向这段共享内存写了数据...原创 2018-09-15 11:17:31 · 192 阅读 · 0 评论 -
Linux关于进程间通信消息队列
消息队列概念消息队列提供了一个从一个进程向另外一个进程发送一块数据的方法 每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值 消息队列也有管道一样的不足,就是每个数据块的最大长度是有上限的,系统上全体队列的最大总长度也有一个上限消息队列函数操作创建一个消息队列,最后进行删除队列#include<stdio.h>#include<sys/t...原创 2018-09-15 11:22:05 · 135 阅读 · 0 评论 -
Linux关于socket(TCP协议实现C/S结构)
socket概述为了简化开发通信程序的工作,由Berkely学校开发了一套网络通信程序的API函数标准 socket标准被扩展成window socket和unix socket linux中的网络编程通过socket接口实现。Socket既是一种特殊的IO,它也是一种文件描述符。一个完整的Socket 都有一个相关描述{协议,本地地址,本地端口,远程地址,远程端口};每一个Socket 有一...原创 2018-09-21 00:59:17 · 3022 阅读 · 0 评论 -
Linux关于socket(深入UDP与TCP区别)
socket之数据报套接字(UDP)数据报套接字(SOCK_DGRAM) 数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠,无差错。使用数据报协议UDP协议。socket之UDP实现udp没有服务器和客户端的概念,但是我们为了和前一篇文章《Linux关于socket(TCP实现C/S)》相结合,进行总结TCP和UDP的区别,我们用代码实现UD...原创 2018-09-21 02:02:03 · 3769 阅读 · 0 评论 -
Linux关于IO复用(select使用)
I/O复用网络应用场合当客户处理多个描述字 一个客户同时处理多个套接口 如果一个tcp服务器既要处理监听套接口,又要处理连接套接口 如果一个服务器既要处理TCP,又要处理UDPselect函数作用这个函数允许进程指示内核等待多个事件中的任一个发生,并仅在一个或多个事件发生或经过某指定的时间后才唤醒进程select函数什么情况下返回作为一个例子,我们可以调用函数select并通知...原创 2018-09-23 00:16:19 · 703 阅读 · 3 评论 -
Linux关于多线程技术
线程的概念在一个程序里的多个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列” 一切进程至少都有一个执行线程线程的优点创建一个新线程的代价要比创建一个新进程小得多 与进程之间的切换相比,线程之间的切换需要操作系统做的工作至少在理论上要少很多 线程占用的资源要比进程少很多线程的函数使用与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以...原创 2018-09-28 11:02:20 · 356 阅读 · 0 评论 -
Linux关于线程同步
关于线程的了解,可以阅读前一篇文章《Linux关于多线程技术》,了解线程后,阅读本文章会比较容易以下代码是想让一个线程count进行累加,另一边读出来,每次累加就读出来一次#include<stdio.h>#include<pthread.h>#include<unistd.h>#include<stdlib.h>int coun...原创 2018-09-28 11:55:14 · 219 阅读 · 0 评论 -
Linux关于信号量
信号量概念Dijkstra提出的“信号量”概念是共发程序设计领域的一项重大进步 信号量是一种变量,它只能取正整数值,对这些正整数只能进行两种操作:等待和信号 用两种记号来表示信号量的这两种操作: P(semaphore variable) 代表等待 V(semaphore variable) 代表信号信号量操作首先我们对信号量进行封装://对信号量中要用到的联合体...原创 2018-09-19 12:04:54 · 213 阅读 · 0 评论 -
linux系统编程之信号发送函数sigqueue和信号安装函数sigaction
转载自:https://www.cnblogs.com/mickole/p/3191804.html一,sigaction()#include <signal.h> int sigaction(int signum,const struct sigaction *act,struct sigaction *oldact));sigaction函数用于改变进程接收到特定信号...转载 2018-09-13 22:06:47 · 252 阅读 · 0 评论 -
Linux关于IO复用(epoll模型)
在这篇开始之前,可以查看前一篇对poll的概念的描述,这样阅读起这篇比较不困难。首先我们要知道,epoll模型和前面poll,select是有差别的,他实现的方法不大一样,我们来看看下面的代码,为了和之前的poll,select进行区别,我们依旧采用C/S架构实现。服务器代码不同,客户端都是一样的,好的,废话不多说,先上代码,再进行分析。服务器代码:#include <stdio....原创 2018-09-23 18:10:42 · 219 阅读 · 0 评论 -
Linux关于shell编程(脚本批量执行)
今天我们来用shell编程做一个批量执行脚本首先是写一个rcS脚本rcS脚本:一个自动执行其他脚本的脚本,其他脚本以S[0-9][0-9]开头。其他脚本为这是S01里面内容 这是S02里面内容下面贴上代码可以进行批量执行这是我们rcS脚本里面的代码,进行批量执行S01脚本和S02脚本执行rcS脚本结果显示...原创 2018-08-23 12:54:12 · 8393 阅读 · 0 评论 -
Linux动态链接库的使用(通用链表为例)
首先我们必须得知道动态链接库没有main函数,通过shared和fPIC编译参数生产so动态链接库文件。程序在调用库函数时,只需要连接上这个库即可。下面演示下:首先是list.h 文件#ifndef _LIST_H_#define _LIST_H_#include <string.h>typedef struct _node_s{ void * pdat...原创 2018-08-20 18:18:27 · 638 阅读 · 0 评论 -
Linux关于GDB调试
首先下面是我们调试一个例子,用的是我们test.c文件,结合我上一篇动态库(通用链表)来使用#include <stdio.h>#include<stdlib.h>#include "list.h"#include <string.h>typedef struct student{ int id; char name[20];...原创 2018-08-21 12:33:41 · 150 阅读 · 0 评论 -
Linux关于makefile的使用(一)
makefile的作用:人们通常利用 make 工具来自动完成编译工作。这些工作包括:如果仅修改了某几个源文件,则只重新编译这几个源文件;如果某个头文件被修改了,则重新编译所有包含该头文件的源文件。利用这种自动编译可大大简化开发工作,避免不必要的重新编译。让我们来使用一下makefile:首先我们要建一个目录来进行放makefile文档,和我们需要编译的文件这是我们建立的目录:make...原创 2018-08-24 15:19:31 · 28380 阅读 · 0 评论 -
Linux关于makefile的使用(二)
这是makefile的第二篇,第一篇内容我们了解了makefile如何简单的使用,这一篇来介绍makefile的伪目标伪目标是用来干什么的呢,比如我们想自己写一个指令clean来清除我们生产的文件,但是我们如果使用makefile的话,肯定不希望生成clean这个文件,所以“伪目标”不是一个文件,只是一个便签,所以make无法生成它的依赖关系和决定它是否执行。我们只有通过显示指明这个目标才可以...原创 2018-08-24 15:43:52 · 612 阅读 · 0 评论 -
Linux关于makefile的使用(三)
这一篇讲得是makefile变量的使用,makefile的变量分为:自定义变量,自动变量,预定义变量,环境变量。而我们最常用的就是自定义变量和自动变量,下面就来讲一下这两个变量:首先自定义变量:定义变量使用 变量名:=变量值 使用变量 $(变量名)下面贴上代码更详细上图,我们定义两个变量,还没进行替换,下图我们进行替换替换以后代码看起来更清晰,效果一样...原创 2018-08-24 17:21:22 · 376 阅读 · 0 评论 -
Linux关于信号
信号的概念信号是UNIX系统响应某些状况而产生的事件,进程在接收到信号时会采取相应的行动。 信号是因为某些错误条件而产生的,比如内存段冲突、浮点处理器错误或者非法指令等 它们由shell和终端管理器产生以引起中断。 进程可以生成信号、捕捉并响应信号或屏蔽信号signal库函数如果想让程序能够处理信号,可以使用 signal库函数,要引入头文件<signal.h>void...原创 2018-09-12 16:57:52 · 189 阅读 · 0 评论 -
Linux关于IO复用(poll模型)
POLL函数概念Poll函数和select类似,但它是用文件描述符而不是条件的类型来组织信息的. 也就是说,一个文件描述符的可能事件都存储在struct pollfd中.与之相反,select用事件的类型来组织信息,而且读,写和错误情况都有独立的描述符掩码.poll函数是POSIX:XSI扩展的一部分,它起源于UNIX System V函数poll原型包含头文件<poll.h&g...原创 2018-09-23 17:47:02 · 530 阅读 · 0 评论 -
Linux命令大全
以下来源:https://wenda.so.com/q/14599844697225041.查进程ps命令查找与进程相关的PID号:ps a 显示现行终端机下的所有程序,包括其他用户的程序。ps -A 显示所有程序。ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。ps -e 此参数的效果和指定"A"参数相同。ps e 列出程序时,显...转载 2018-08-18 18:31:18 · 222 阅读 · 0 评论