E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
「Linux系统编程」
Linux系统编程
——I/O多路复用select、poll、epoll
参考:https://segmentfault.com/a/1190000003063859Linux下的I/O复用与epoll详解:https://www.cnblogs.com/lojunren/p/3856290.html彻底学会epoll系列:http://blog.chinaunix.net/uid/28541347/sid-193117-list-1.htmLinux下I/O多路复用系
十瓣月亮
·
2020-08-08 11:55
网络
Linux高并发网络编程开发——epoll-udp
10-
Linux系统编程
-第13天(epoll-udp)目录:一、学习目标二、复习1、通过gdb定位段错误的位置2、TCP状态转换复习三、epoll1、epoll相关的函数介绍和工作流程2、epoll模型伪代码
AllisWell_WP
·
2020-08-08 11:35
Linux高并发网络编程开发——10-
Linux系统编程
-第10天(网络编程基础-socket)
10-
Linux系统编程
-第10天(网络编程基础-socket)一、Linux网络编程阶段二、网络基础1、网络开发两种设计模式》协议的概念什么是协议?
AllisWell_WP
·
2020-08-08 11:04
一文搞懂Linux系统开发
C语言基础shell脚本学会使用Makefile常规
Linux系统编程
知识都有什么?哪些常用?哪些不常用?
风声笔记
·
2020-08-08 08:00
diff与patch的使用
在
Linux系统编程
中,经常会用到diff与patch生成补丁与打补丁,原来对这方面不了解,也就觉得难,做过之后发现并没有什么。
fensnote
·
2020-08-07 22:33
linux系统编程
--信号
信号信号的概念信号的产生信号的处理方式标准信号的不可靠性信号集阻塞信号集未决信号集信号与系统调用被中断的系统调用信号处理方式的更改1、signal函数2、带参数的信号处理函数2.1sigaction函数2.2structsigaction结构2.3sa_sigaction成员2.4发送信号时如何携带参数信号的概念什么是信号?信号其实是编号从1-64的一组数,用SIG开头的宏表示。信号是一个软中断,
高高-在下
·
2020-08-07 21:37
Linux系统编程
——线程安全
线程同步互斥量(互斥锁)保护共享资源的原子访问。访问共享资源的代码段称为临界区。互斥量的死锁线程已将目标互斥量锁定,再次进行加锁会造成两种后果:1、线程死锁,默认情况下线程会发生死锁。2、加锁调用失败,返回EDEADLK错误另一种死锁:线程A:pthread_mutex_lock(&mutex1);//阻塞pthread_mutex_lock(&mutex2);//阻塞线程B:pthread_mu
_忘语_
·
2020-08-07 16:22
Linux系统编程
linux系统编程
之信号(八):三种时间结构及定时器setitimer()详解
一,三种时间结构time_t://secondsstructtimeval{longtv_sec;/*seconds*/longtv_usec;/*microseconds*/};structtimespec{time_ttv_sec;/*seconds*/longtv_nsec;/*nanoseconds*/};二,setitimer()现在的系统中很多程序不再使用alarm调用,而是使用set
weixin_33739646
·
2020-08-05 14:03
linux定时器总结
1参考资料Øhttp://www.ibm.com/developerworks/cn/linux/1307_liuming_linuxtime1/Ø《
linux系统编程
》第“10.9定时器”章节2概要要在
许振坪
·
2020-08-05 12:33
Linux
Linux系统编程
——进程间通信(一)
Linux系统主要的进程间通信机制如下:无名管道(Pipe)及命名管道(Namedpipe):无名管道可用于具有父子关系进程间的通信;命名管道用于无父子关系的进程之间的通信。无父子关系的进程可将信息发送到某个命名管道中,通过管道名读取信息信号(Signal):进程间的高级通信方式,用于通知其他进程有何种事件发生。此外,进程可以向自身发送信号,还可获得Linux内核发出的信号。报文(Message)
无夜之凛冬
·
2020-08-04 16:48
Linux系统编程
linux系统编程
-文件编程
一、系统调用对文件进行访问创建文件intcreat(constchar*filename,mode_tmode)filename:要创建的文件名(包含路径,默认为当前路径)mode:创建模式常见创建模式:S_IRUSR可读S_IWUSR可写S_IXUSR可执行S_IRWXU可读可写可执行voidcreat_file(char*filename){if(creat(filename,0755)#in
咸亨苦行僧
·
2020-08-04 06:01
linux应用编程
linux
Linux下undefined reference to ‘pthread_create’问题解决接触了
Linux系统编程
中的线程编程模块,可gcc sample.c(习惯把书上的sample代码写
接触了
Linux系统编程
中的线程编程模块,可gccsample.c(习惯把书上的sample代码写进sample.c文件中)出现“undefinedreferenceto‘pthread_create’
天夏123
·
2020-08-03 21:35
linux select详解
select原理
Linux系统编程
——与内核和C库直接对话select能轮询一个管道端口(文件,网络),若有数据select例子#include#include#include#includeconstintTIMEOUT
naruto2011sasuke
·
2020-08-03 20:32
C++网络编程
linux系统编程
手册 定时器和休眠
一、间隔定时器1.setitimersettitimer创建一个间隔式定时器,这种定时器会在未来某个时间到期,并于此后(可选择地)每隔一段时间到期一次intsetitimer(intwhich,conststructitimerval*new_value,structitimerval*old_value);参数which:1.ITIMER_REAL创建真实倒计时定时器。到期产生SIGALARM信
kc专栏
·
2020-08-03 18:07
unix
&
linux书籍
Linux系统编程
——环境列表
本节详细介绍一下很唬人的“环境列表”,在初学计算机知识的时候,我们对环境列表会感到非常陌生,有时候我们在安装各中应用软件时,有时也需要配置一下环境变量,那到底环境变量都存了些什么东西呢,今天就一一解开这些谜团什么是环境变量:每一个进程都有与其相关的称之为环境列表的字符串数组,也可以简称为环境,其中每个字符串都以名称=值形式定义,因此环境是“名称-值”的成对集合,可存储任何信息,所以也把列表中的名称
瑜胜
·
2020-08-03 17:05
Linux
Linux系统编程
--pread()和pwrite()函数
pread()和pwrite()函数,最大的好处是它们不会改变文件当前的偏移量,对pread()和pwrite()函数而言,fd所指代的文件必须是可定为的(即允许对文件描述符执行了lseek());多线程应用为这些系统调用提供了用武之地。使用pread()和pwrite()系统调用能够避免进程间出现竞争状态#includessize_tpread(intfd,void*buf,size_tcoun
瑜胜
·
2020-08-03 17:34
Linux系统编程
——1.通用的I/0模型
我们都知道在Linux系统中,“一切皆文件”,所以对于文件的i/o的一系列操作也可以用于诸如管道,终端等所有的文件类型1.概述文件描述符:简单介绍一下文件描述符,文件描述符表示的是进程打开的所有类型的文件,是一个非负整数。针对每一个进程,文件描述符都是自成一套,在程序开始运行之前,我们的父进程shell就已经帮我们打开了三个我们经常用到的文件描述符,标准输入(stdin)STDIN_FILENO,
瑜胜
·
2020-08-03 17:02
基础Day10(内存结构)
全局变量和局部变量静态、声明、函数static修饰的变量只能在一个文件中使用声明作用域和声明周期内存四区模型代码区:程序指令数据区:(静态区全局区)(
Linux系统编程
会将数据区拆开讲解)(1)初始化数据
Dfish_
·
2020-08-03 12:54
linux系统编程
之getsockopt/setsockopt 函数
最近看别人写的代码很多函数不知道啊,在研究分布式消息队列beanstalkd,遇到了很多东西。尤其是网络连接方面。代码是这样的。setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,&flags,sizeofflags);setsockopt(fd,SOL_SOCKET,SO_KEEPALIVE,&flags,sizeofflags);setsockopt(fd,SOL_SO
wintree
·
2020-08-03 06:59
unix
环境高级编程
unix/linux学习篇
C/C++学习
linux系统编程
之基础必备(五):Linux进程地址空间和虚拟内存
一、虚拟内存先来看一张图(来自《Linux内核完全剖析》),如下:分段机制:即分成代码段,数据段,堆栈段。每个内存段都与一个特权级相关联,即0~3,0具有最高特权级(内核),3则是最低特权级(用户),每当程序试图访问(权限又分为可读、可写和可执行)一个段时,当前特权级CPL就会与段的特权级进行比较,以确定是否有权限访问。每个特权级都有自己的程序栈,当程序从一个特权级切换到另一个特权级上执行时,堆栈
s1mba
·
2020-08-02 22:44
linux环境系统编程
Linux系统编程
(无名信号量)
信号量概述信号量广泛用于进程或线程间的同步和互斥,信号量本质上是一个非负的整数计数器,它被用来控制对公共资源的访问。编程时可根据操作信号量值的结果判断是否对公共资源具有访问的权限,当信号量值大于0时,则可以访问,否则将阻塞。PV原语是对信号量的操作,一次P操作使信号量减1,一次V操作使信号量加1。信号量主要用于进程或线程间的同步和互斥这两种典型情况。信号量用于互斥:信号量用于同步:在POSIX标准
小麦大大
·
2020-08-01 14:44
linux网络与系统编程
C++11中多线程库
、Linux线程API线程是在操作系统层面支持的,所以多线程的学习建议还是先找一本
linux系统编程
类的书,了解linux提供线程的API,了解使用线程设计程序的基本操纵。
不知道取什么呀
·
2020-07-31 16:00
基本概念 - -
Linux系统编程
手册
基本概念(Fundamentalconcepts)2.1内核(TheKernel)操作系统(operatingsystem)通常有2种不同含义:1.指完整的软件包。这包括管理计算机资源的核心软件和所有附带的标准软件工具,如。。。。//consistingof...and.....翻译为“,这包括....以及/和......2.狭义地(Morenarrowly)指核心软件,它(that)管理和分配计
学海无涯书山有路
·
2020-07-31 10:55
读书笔记
进程组、会话和作业控制(process groups, sessions, and job control)-
Linux系统编程
手册
进程组和会话是为支持shell作业控制而定义的抽象概念。34.1概述(overview)进程组:由一个或多个进程组成,它们有同样的进程组标识符(PGID)。进程组ID是一个数字,其类型与进程ID一样(pid_t)。一个进程组拥有一个processgroupleader进程,该进程是创建该组的进程,其进程ID为该进程组的ID,新进程会继承其父进程所属的进程组ID。进程组拥有一个生命周期(lifeti
学海无涯书山有路
·
2020-07-31 10:55
读书笔记
linux系统编程
基础及编程进阶通道
系统进程控制管理命令1、系统进程概念1、程序是一个包含可执行代码文件,它放在磁盘的介质上,当程序被操作系统装载到内存并分配给他一定的资源后,此时可以被称为进程。``2、程序是静态的概念,进程是动态的概念。2、并发并发,在操作系统中,一个时间段中有多个进程都处于已启动运行到运行完毕之间的状态。但,任一个时刻点上仍只有一个进程在运行。单道程序设计:所有进程一个一个排对执行。若A阻塞,B只能等待,即使C
浅墨@~无痕
·
2020-07-30 15:11
gdb调试技巧(一)———— gdb 调试带参可执行
谢谢配合GDB是linux上的调试利器,是我们每个基于
linux系统编程
coder必须掌握的一门技术。
IT山IT水
·
2020-07-30 08:03
Linux应用
C/C++
Linux系统编程
:(3)进程内存分配
一、堆内存分配进程在运行期间可以通过增加堆(heap)的大小来为进程分配内存,在进程的内存布局中,堆是一段大小可变的连续虚拟内存,始于BSS段的末尾,随着内存的分配和释放而增减。和栈有自己的指针指向栈顶一样,堆也有指向堆边界的“programbreak”。1.调整programbreak:brk()和sbrk()改变堆的大小(即分配或释放内存),其实就像命令内核改变programbreak位置一样
布莱恩特退役写代码
·
2020-07-30 07:41
Linux系统编程
Linux系统编程
:(4)用户与组、密码加密与认证
一、用户与组在讨论进程凭证之前,我们先来搞清楚用户与组的概念。每个用户都拥有一个唯一的用户名和一个与之相关的数值型用户标识符(UID),一个用户可以隶属于一个或者多个组。每个组也都有唯一的名称和一个组标识符(GID)。用户与组的主要用途包括以下两个方面:确定各种系统资源的所有权和对赋予进程访问上述资源的权限加以控制。1.密码文件:/etc/passwd针对系统中每个用户账号,系统密码文件/etc/
布莱恩特退役写代码
·
2020-07-30 07:41
Linux系统编程
第十七节
Linux系统编程
-开发板实现 TFTP 文件传输(一)
-------------------------------------资源来源于网络,仅供自学使用,如有侵权,联系我必删.第一:本章导读本章介绍如何使用TFTP服务器在开发板和虚拟机的Ubuntu进行传文件同一网段的概念概念需要结合IP地址以及子网掩码1)IP地址:下图Ubuntu的IP地址是192.168.0.109再来看一下开发板的IP,如下图所示,在查看最小文件系统的etc文件可以看到默
嵌入式开发学习者
·
2020-07-29 21:27
linux系统编程
学习笔记 第四章 高级文件I/O(部分)
poll和select必须遍历被监视的文件描述符列表,当这个列表很大时,每次调用时的遍历时间成为瓶颈。epoll就是为了优化poll和select。创建一个epoll实例:#includeintepoll_create(intsize)成功时,创建了一个epoll实例,返回值为与该实例关联的文件描述符。这个文件描述符与真正的文件没有关系,仅为了后续调用使用epoll而创建。size参数告诉内核需要
tus00000
·
2020-07-29 11:29
Linux系统编程
Linux系统编程
:使用mutex互斥锁和条件变量实现多个生成者和消费者模型
实现代码如题,使用mutex互斥锁和条件变量实现多个生成者和消费者模型。直接上代码,需要线程中的互斥锁和条件变量的相关知识进行支撑。这里就不细说了呀,代码中有一定的注释。#include#include#include#include#include#include#include#include//产品typedefstructMsg{structMsg*next;intnum;}Msg;pth
李四老师
·
2020-07-29 10:28
【Language_C】
Linux基本操作指令
Linnux课程框架学习LINUX初识阶段:常用操作,常用工具1.
Linux系统编程
阶段1>进程概念2>进程控制3>基础IO4>进程间通信5>进程信号6>多线程2.LINUX网络编程1>基础12>编程3
今日青年
·
2020-07-29 07:40
Linux
【
Linux系统编程
】进程和线程的区别
00.目录文章目录00.目录01.进程和线程区别02.附录01.进程和线程区别在许多经典的操作系统教科书中,总是把进程定义为程序的执行实例,它并不执行什么,只是维护应用程序所需的各种资源,而线程则是真正的执行实体。为了让进程完成一定的工作,进程中必须至少包含一个线程。进程,直观点说,保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己的地址空间,有自己的堆,上级挂靠单位
沧海一笑-dj
·
2020-07-27 21:53
Linux环境高级编程
进程
线程
Linux进程
Linux线程
进程与线程区别
10本 Linux PDF 书籍免费分享
Unix_Linux编程实践教程四、鸟哥的私房菜五、深入理解Linux内核六、Linux命令行与shell脚本编程大全七、Linux内核设计与实现八、ARM_Linux内核源码剖析九、深入Linux内核架构十、
Linux
anpaikan3027
·
2020-07-27 19:49
信号(二)——进程间数据传递sigaction函数(sigaction结构体、siginfo_t 结构体)、sigqueue函数(sigval联合体)、信号的顺序响应问题——
linux系统编程
文章目录sigaction信号安装函数sigaction结构体siginfo_t结构体sigqueue信号发送函数sigval联合体信号的顺序响应问题代码示例上一篇讲到信号值位于SIGRTMIN和SIGRTMAX之间的信号都是可靠信号,可靠信号克服了信号可能丢失的问题。Linux在支持新版本的信号安装函数sigation()以及信号发送函数sigqueue()的同时,仍然支持早期的signal()
z5z5z5z56
·
2020-07-26 15:13
linux
linux
Linux系统编程
——POSIX IPC
POSIXIPCPOSIXIPC中的xxx_open()中的一些意义相同参数的取值:xxx可以是mq(消息队列)、sem(信号量)、shm(共享内存)参数oflag:O_RDONLY-可读O_WRONLY-可写O_RDWR-可读可写O_CREAT-队列不存则创建,需要使用mode和attr参数如果文件存在,mode和attr参数被忽略O_EXCL-如果使用O_CREAT,消息队列存在则创建失败O_
guangjieMVP
·
2020-07-16 06:16
Linux系统编程
Linux系统编程
——多线程
线程是独立调度的基本单位。一个进程可以有一个或者多个线程,线程之间共享进程资源。线程分类按调度者分为:用户级线程(UserLevelThread,ULT)解决上下文切换问题,调度算法和过程由用户决定存在于用户空间线程创建、撤销以及线程之间的同步、通信无需系统调用来实现同一进程的线程切换不需要内核支持调度以进程为单位优点:线程切换不需要到内核空间,节省内核空间调度算法可以进程专用,亦或用户程序指定用
guangjieMVP
·
2020-07-16 06:16
Linux系统编程
Linux系统编程
——内存映射
内存映射优点与普通文件多写相比能加快读文件/设备的读写速度文件映射创建文件映射步骤:1、使用open()获取文件描述符fd2、将文件描述符fd作为fd参数给mmap()调用mmap()后及时关闭文件描述fd,也不会对映射产生任何影响创建映射#includevoid*mmap(void*addr,size_tlength,intprot,intflags,intfd,off_toffset);add
guangjieMVP
·
2020-07-16 06:16
Linux系统编程
Linux后端开发
4.熟悉底层,计算机体系结构程序员的自我修养—链接、装载与库深入理解计算机系统5.熟悉
Linux系统编程
UNIX环境高级编程UNIX网络编程_卷2_进程间通信6.学习
有时需要偏执狂
·
2020-07-15 15:05
心情
《Linux》-发展背景
Linux背景发展史本门课程学习
Linux系统编程
,你可能要问Linux从哪里来?它是怎么发展的?在这里简要介绍Linux的发展史。要说Linux,还得从UNIX说起。
Hash table
·
2020-07-14 06:37
IT
Linux
与Linux的交织从此处开始
Linux背景发展史UNIX发展的历史Linux发展历史开源官网企业应用现状发行版本os概念,定位守得云开见月明,静待花开终有时发展史学习
Linux系统编程
,首先得知道Linux从哪里来?
AngelDg
·
2020-07-14 03:34
Linux
linux系统编程
视频 百度网盘下载
本帖最后由雇佣兵333于2015-5-1916:15编辑c教程目录:Linux开发快速入门培训gcc快速入门Makefile快速入门GDB快速入门
Linux系统编程
之文件篇01认识计算机系统(上)计算机系统组成计算机系统硬件组成总线
weixin_33834075
·
2020-07-14 02:15
linux系统编程
-mmap实例:多进程拷贝文件
题目有一个超大文件,需要对其进行拷贝,为了提高效率,可以采用多进程并行拷贝的方法。采用mmap来实现。代码:当前文件下有大文件:myfile,拷贝到当前write(进程新建的)#include#include#include#include#include#include#include#includeintmain(void){pid_tpid;inti=0;intfd,fd1;char*p;s
zzyczzyc
·
2020-07-14 00:47
linux系统编程
linux系统编程
-mmap(共享内存)
易错点对新创建的文件(文件没有大小)进行映射,会收到buserror的错误mmap函数的最后一个参数offset如果不是4K的整数倍,报错:Invalidargumentmmap(共享映射区)存储映射I/O一个磁盘文件与存储空间中的一个缓冲区相映射,于是当从缓冲区中取数据,就相当于读文件中的相应字节。于此类似,将数据存入缓冲区,则相应的字节就自动写入文件。这样,就可在不适用read和write函数
zzyczzyc
·
2020-07-14 00:47
linux系统编程
Linux系统编程
--lseek调用
lseek每个打开的文件都记录着当前读写位置,打开文件时读写位置是0,表示文件开头,通常读写多少个字节就会将读写位置往后移多少个字节。但是有一个例外,如果以O_APPEND方式打开,每次写操作都会在文件末尾追加数据,然后将读写位置移到新的文件末尾。lseek和标准I/O库的fseek函数类似,可以移动当前读写位置(或者叫偏移量)。#include#includeoff_tlseek(intfd,o
zhutianyu_123
·
2020-07-13 23:49
linux
C
lseek
Linux系统编程
--信号及信号处理(一)
Linux信号介绍一、信号解释信号是一种软件中断,它提供了一种处理异步事件的方法,也是进程间唯一的异步通信方式。在linux系统中,根据POSIX标准扩展以后的信号机制,不仅可以用来通知某进程发生了什么事件,还可以给进程传递数据。二、信号的来源硬件方式1.当用户在终端上按下某些键时,将产生信号。2.硬件异常产生信号:除数为0,无效的存储访问等。这些事件通常由硬件(如CPU)检测到,并将其通知给Li
闫钰晨
·
2020-07-13 23:15
Linux-C
《
Linux系统编程
:vfork() 函数详解》
所需头文件:#include#includepid_tvfork(void);功能:vfork()函数和fork()函数(fork()如何使用,请点此链接)一样都是在已有的进程中创建一个新的进程,但它们创建的子进程是有区别的。参数:无返回值:成功:子进程中返回0,父进程中返回子进程ID。pid_t,为无符号整型。失败:返回-1。fork()与vfock()都是创建一个进程,那它们有什么区别呢?1)
HarkerYX
·
2020-07-13 22:00
Linux/Unix
系统编程
linux系统编程
一、linux基础1.linux系统简介2.shellshell是命令解释器,根据输入的命令执行相应命令。查看当前系统下有哪些shell,cat/etc/shells查看当前系统正在使用的shell,echo$SHELLbash是大多数linux系统以及macosx10.4默认的shell,它能运行于大多数unix风格的操作系统之上,甚至被移植到了windows的cygwin系统中,以实现wind
dchaofang
·
2020-07-13 22:17
LINUX
linux系统编程
--内存映射区概念及相应函数
0基本概念1查看(系统的fifo文件):manshm_overviewls/dev/shm2分类内存映射文件匿名内存映射(亲缘进程)共享内存区对象(非亲缘进程)3创建/打开文件intshm_open(constchar*name,intoflag,mode_tmode)3.1参数参数含义nameposixIPC名字,格式为/somenameoflag标志mode权限3.2标志标志作用O_CREAT
。。
·
2020-07-13 21:43
系统编程
linux系统编程
--内存映射(进程通信)
1进程间通信的思路有血源关系的父亲进程之间共享内存映射区相比于文件操作优势在于1:效率高(因为直接在内存上操作)2:不阻塞缺点在于:一定要注意读写顺序没有血源关系的进程间通信如何通信不能使用匿名映射的方式,只能借助磁盘文件创建映射区不阻塞a(a.c)进程b(b.c)进程a.c(intfd=open("hello");void*ptr=mmap(,,,,,fd,0);//下来进行读写操作)b.cin
。。
·
2020-07-13 21:12
系统编程
上一页
13
14
15
16
17
18
19
20
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他