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系统编程
--第四章 高级文件IO
散布/聚集IO:在单个系统调用中同时对多个缓冲区进行读取或者写入操作,适合聚集不同数据结构进行统一的IO操作。epoll:poll()和select()的改进版本,在一个程序需要处理数百个文件描述符的时候很有用内存文件映射IO:将文件映射到内存,可以通过简单的内存管理方式来处理文件文件IO提示:允许进程将文件IO使用上的一些提示信息提供给内核,能提升IO性能异步IO:允许进程发出多个IO请求而且不
嵌入式软件和硬件
·
2020-07-13 19:40
Linux内核
Linux系统编程
--- 共享内存及内存映射【十全十美】
一.POSIX共享内存的实现-----------------------------------------------------------------------------共享内存是在进程间共享某一块内存。是最快一种ipc通信机构。其中posix共享内存机制它主要是通过内存映射(mmap)机制来实现的。在进程间共享内存使用如下固定步骤:1.创建一个共享内存intshm_open(cons
weixin_34072159
·
2020-07-13 18:33
Linux系统编程
---进程间通信-消息队列
消息队列消息队列也是一种进程间通信方式,它提供了两个不相关进程间传递数据的方式。消息队列实际上是操作系统在内核为我们创建的一个链式队列,通过这个队列的标识符key,多个进程可以通过向队列中添加节点或获取节点来进行数据传输。这个队列中的节点有一个消息类型来标识不同进程所发送或接受的数据类型。消息队列的生命周期随内核。内核为每个IPC对象维护了一个数据结构消息队列结构:消息队列有关操作函数//头文件#
shanghx_123
·
2020-07-13 13:12
Linux
Linux系统编程
三:IPC消息队列
公众号:CppCoding消息队列可以认为是一个消息链表,其含有优先级。在某个进程往一个队列写入消息之前,并不需要另外某个进程在该队列上等待消息的到达。消息队列是具有随内核的持续性。一直存在到内核的重新自举或者显示的删除该对象。查看POSIX消息队列:ls/dev/mqueue命名规则只能以/开头。接口头文件:mqueue.h库:librt.so(-lrt//链接)结构体structmq_attr
Dorby .
·
2020-07-13 12:49
Linux系统编程
linux系统编程
之文件IO案例题
给出一个文件文件,删除该文本的第10行#include#include#include#include#include#include/*面试题要求:*//*编写一个程序,删除一个文件的第10行*///__getline()传入文件指针统计行数size_t__getline(FILE*fp){if(fp==NULL)return0;intlinecount=0;intres=0;rewind(fp
八十八夜的茶摘
·
2020-07-13 11:32
linux系统编程
Linux系统编程
之进程
进程的创建系统调用fork()可以从一个父进程中创建一个子进程,子进程的资源同父进程几乎一样:子进程获取父进程的栈、数据段、堆和代码段(执行文本段)的拷贝。执行fork()之后,每个进程都可以修改自己栈数据、堆中的变量且并不会影响另一个进程。执行fork()时,子进程会获得父进程所有的文件描述符副本,类似于dup(),意味着父进程和子进程对应的文件描述符指向同一个打开文件句柄(共享当前文件的偏移量
haha and giraffe
·
2020-07-13 09:57
Linux
Linux系统编程
——内存映射与写时复制
基本概述内存映射就是将虚拟内存中的一块区域与磁盘上的对象建立关联以初始化虚拟内存区域的内容。有两种映射文件映射:讲一个文件的一部分直接映射到调用进程的虚拟内存中匿名映射:一个映射没有对应的文件(也可以理解成一个内容总是被初始化为零的虚拟文件的映射)一个进程的映射中的内存可以与其他进程中的映射共享,当两个或者多个进程共享相同的物理分页时候,每个进程都可以对其做修改和读取,此时就会出现一致性问题,由此
haha and giraffe
·
2020-07-13 09:57
Linux
第五节
Linux系统编程
-文件IO-关闭函数 close
-------------------------------------资源来源于网络,仅供自学使用,如有侵权,联系我必删.实验-关闭函数closeclose函数介绍任何一个文件在操作完成之后都需要关闭,这个时候需要调用close函数。调用close函数之后,会取消open函数建立的映射关系,句柄将不再有效,占用的空间将被系统释放。关闭文件close函数:•intclose(intfd);第二:
嵌入式开发学习者
·
2020-07-13 09:25
[
linux系统编程
]System V IPC 消息队列
//进程1 intmsg_id=-1; if((msg_id=msgget((key_t)MSG_R_KEY,0777|IPC_CREAT))==-1)//创建或者获取KEY值的消息队列 { printf("msggetfailure!!!\n"); return(-1); } if((msgsnd(msg_id,(void*)&msg_q_s,
明天我约你
·
2020-07-13 08:43
LINUX系统编程
Linux详解之用三个文件实现复制文件内容功能
知识点:1.
Linux系统编程
之错误处理:perror,strerror和errno首先是errno,在系统编程中错误通常通过函数返回值来表示,并
Jacky-Summer
·
2020-07-13 07:31
Linux
Linux系统编程
---5(共享存储映射,存储映射I/O,mmap函数,父子进程间通信,匿名映射)
共享存储映射文件进程间通信使用文件也可以完成IPC,理论依据是,fork后,父子进程共享文件描述符。也就共享打开的文件。编程:父子进程共享打开的文件。借助文件进行进程间通信。测试代码/***父子进程共享打开的文件描述符----使用文件完成进程间通信**/#include#include#include#include#include#includeintmain(void){intfd1,fd2;
阳光丿洒脱
·
2020-07-13 07:47
Linux
系统编程
Linux系统编程
之进程优先级和调度一
进程是CPU的执行单位,进程间的配合是否完美在一定程度上也就决定了该CPU的运行速度。那进程间是如何对CPU资源进行一个调用的呢?又是如何去取得CPU的使用权?这就得谈到进程得优先级和调度问题了。Linux调度进程使用CPU得默认模型是循环时间共享,就是每个进程访问CPU得时间是一致得,并且是循环轮流使用的,而访问CPU这段时间称之为时间片或者量子。在这种模式种,进程无法直接控制何时使用CPU和C
黄先生-?
·
2020-07-13 05:03
Linux系统编程
(一)
Linux系统编程
之文件、目录操作
1.复制文件描述符#includeintdup(intoldfd);oldfd-要复制的文件描述符返回值:新的文件描述符dup调用成功:有两个文件描述符指向同一个文件返回值:取最小的且没被占用的文件描述符,若错误返回-1,错误代码存入errno中。为什么需要复制一个新的文件描述符?一个原因是使用fdopen。fclose关闭传递给它的文件描述符fdopen,就是说如果你不希望原始文件描述符被关闭,
CarmenIsOK
·
2020-07-13 00:09
Linux系统编程
Linux系统编程
4:IPC消息队列
Linux系统编程
4:IPC消息队列0.消息队列1.POSIX消息队列1.1查看1.2接口1.3结构体1.4函数1.4.1创建消息队列1.4.2删除消息队列1.4.3打开消息队列1.4.4关闭消息队列1.4.5
Sunrise的博客
·
2020-07-12 23:52
笔记
Linux系统编程
--管道和FIFO
管道$ls|wc-l为执行上述命令,shell创建了两个进程来分别执行ls和wc。通过管道连接两个进程。管道是单向的,允许数据从一个进程流向另一个进程。一个管道是一个字节流管道是一个字节流意味着在使用管道时不存在消息或消息边界。从管道中读取数据的进程可以读取任意大小的数据块,而不管写入进程写入管道的数据块大小。通过管道的数据是有顺序的。并且,在管道中无法使用lseek()来随机的访问数据。从管道中
杨洋啊啊啊
·
2020-07-12 22:56
Linux/Unix系统编程
Linux系统编程
--内存映射 mmap
概述mmap()系统调用在调用进程的虚拟地址空间中创建一个新内存映射。映射分为两种。-文件映射:文件映射将一个文件的一部分直接映射到调用进程的虚拟内存中。一旦一个文件被映射之后就可以通过在相应的内存区域中操作字节来访问文件内容了。映射的分页会在需要的时候从文件中(自动)加载。-匿名映射:一个匿名映射没有对应的文件。相反,这种映射的分页会被初始化为0。(一个内容总是被初始化为0的虚拟文件的映射)一个
杨洋啊啊啊
·
2020-07-12 22:25
Linux/Unix系统编程
Linux系统编程
--POSIX消息队列
打开一个消息队列#include#include#includemqd_tmq_open(constchar*name,intoflag,.../*mode_tmode,structmq_attr*attr);POSIXIPC对象需要使用以斜线开头后面跟着一个或多个非斜线字符的名字例如/mqoflag是位掩码标记描述O_CREAT不存在时创建O_EXCL和O_CREAT一起排他创建O_RDONLY
杨洋啊啊啊
·
2020-07-12 22:25
Linux/Unix系统编程
linux
Linux系统编程
——POSIX消息队列
简介POSIX消息队列就是进程之间通讯的方式之一,其特点是以消息的形式交换数据(数据的交换单位是整个消息),POSIX消息队列和SystemV消息队列相比,有以下优点:消息通知特性允许一个进程能在一条消息进入之前为空的消息队列时候,异步的通过信号或者线程的实例化接收通知Linux下可以通过poll()、select()、epoll监控POSIX消息队列打开、关闭、删除消息队列在fork()中子进程
haha and giraffe
·
2020-07-12 22:41
Linux
[
Linux系统编程
笔记]对目录进行操作
标签:Linux系统调用编程目录的创建和删除目录的创建可以由mkdir系统调用来实现其函数原型为#include#includeintmkdir(constchar*pathname,mode_tmode);mkdir创建一个新的空目录。空目录中自动创建.和..目录项所创建目录的存取许可权,由mode(mode&~umask)决定。新创建目录的uid与创建该进程的uid一致。如果父目录设置了st_
kkkkde
·
2020-07-12 22:00
c语言
Linux
linux系统编程
-SOCKET通信基础编程(0)-UDP编程
linux系统编程
-SOCKET通信基础编程(0)-UDP编程
linux系统编程
-SOCKET通信基础编程(1)-UDP编程服务端程序
linux系统编程
-SOCKET通信基础编程(2)-UDP编程客户端程序
SSS的博客
·
2020-07-12 21:28
linux系统编程
Linux系统编程
(消息队列)
概述消息队列提供了一种在两个不相关的进程之间传递数据的简单高效的方法,其特点如下:1)消息队列可以实现消息的随机查询。消息不一定要以先进先出的次序读取,编程时可以按消息的类型读取。2)消息队列允许一个或多个进程向它写入或者读取消息。3)与无名管道、命名管道一样,从消息队列中读出消息,消息队列中对应的数据都会被删除。4)每个消息队列都有消息队列标识符,消息队列的标识符在整个系统中是唯一的。5)消息队
小麦大大
·
2020-07-12 21:48
linux网络与系统编程
Linux系统编程
--POSIX消息队列实现文件服务器
客户端向服务器的消息队列发送一个请求消息请求指定名称的文件内容。服务器将文件的内容返回到客户端私有的消息队列中。mq_recive所指向的接收信息的地址的大小不能小于MSGSIZE。发送信息时需要将发送结构体初始化(bzero)//mq.h#include#include#include#include#include#include#include#include#include#include
杨洋啊啊啊
·
2020-07-12 21:44
Linux/Unix系统编程
Linux系统编程
:TCP和UDP协议
TCP与UDP区别:1、TCP面向连接,即先建立连接在进行传输;UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的传输服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用
iotflh
·
2020-07-12 21:32
Linux系统编程
linux 系统编程学习经验
简单写一下总结(1)书籍的选择个人推荐一下三本:UNIX环境高级编程https://book.douban.com/subject/1788421/
LINUX系统编程
https://book.douban.com
yz764127031
·
2020-07-12 19:53
Linux
Linux系统编程
| 管道
▋1.管道的概念管道,又名「无名管理」,或「匿名管道」,管道是一种非常基本,也是使用非常频繁的IPC方式。1.1管道本质管道的本质也是一种文件,不过是伪文件,实际上是一块内核缓冲区,大小4K;管道创建以后会产生两个文件描述符,一个是读端,另一个是写端;管道里的数据只能从写端被写入,从读端被读出;1.2管道原理管道是内核的一块缓冲区,更具体一些,是一个环形队列。数据从队列的一端写入数据,另一端读出,
良许Linux
·
2020-07-12 19:37
Linux应用编程
Debian忘记root密码解决方法
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/22713/showart_166207.html今天装了个debian来做
linux系统编程
,
weixin_34085658
·
2020-07-12 08:22
Linux系统编程
(11)——进程间通信之有名管道
管道应用的一个重大限制是它没有名字,因此,只能用于具有亲缘关系的进程间通信,在有名管道(namedpipe或FIFO)提出后,该限制得到了克服。FIFO不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。这样,即使与FIFO的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过FIFO相互通信(能够访问该路径的进程以及FIFO的创建进程之间),因此,通过F
weixin_30815469
·
2020-07-12 07:25
Linux系统编程
(16)——正则表达式入门
字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等等。字符串是0个或更多个字符的序列。文本也就是文字,字符串。说某个字符串匹配某个正则表达式,通常是指这个字符串里有一部分(或几部分分别)能满足表达式给出的条件。在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的
weixin_30376083
·
2020-07-12 05:17
推荐c++学习课程 c++从入门到精通 c++11/14/17
fpga–>自制cpu–>汇编–>c–>自制操作系统–>c+±->
linux系统编程
–>算法–>设计模式–>网络编程–>界面类(gtk,qt,mfc)–>数据库–>ope
飞剑神
·
2020-07-10 12:38
C/C++
Linux系统编程
手册 学习笔记(二)
第四章:文件I/O:通用的I/O模型在该章节中讨论的文件描述符的概念。其中包括:打开文件,关闭文件,从文件中读取数据和向文件中写数据。概述所有执行I/O操作的系统调用都以文件描述符(一个非负整数(通常是比较小的整数))来指代打开的文件。文件描述符用以表示所有类型的已打开文件,包括管道(pipe)、FIFO、socket、终端、设备和普通文件。下面介绍执行I/O操作的4个主要系统调用:open:fd
Capr1corn
·
2020-07-10 09:53
linux系统编程
被信号打断的系统调用
参考这篇文章:http://www.cnblogs.com/mickole/p/3191832.html《
linux系统编程
之信号(七):被信号中断的系统调用和库函数处理方式》一些IO系统调用执行时,如
weixin_34013044
·
2020-07-10 08:54
Linux系统编程
(5)——文件与IO之mmap函数
mmap系统调用它本身提供了不同于一般对普通文件的访问方式,进程可以像读写内存一样对普通文件的操作。而Posix或系统V的共享内存IPC则纯粹用于共享目的,mmap()实现共享内存也是其主要应用之一。mmap系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问,不必再调用read(),write()等操作。我们的程序中大量
weixin_30298497
·
2020-07-10 06:44
linux系统编程
之signal信号处理程序
1信号处理程序1.1概述信号,软中断信号,用来通知进程发生了某些事件,是一种软件层面上对中断机制的一种模拟。信号本身是一段非常小的信息,一般都只是一个整数。信号的目的有两个:(1)通知进程一个特定的事件发生了;(2)让进程执行一个信号处理函数。使用kill-l查看系统支持的信号类型如下:其中,1-31是定期信号,32-64是实时信号。两者的区别在于:内核不支持定期信号的排队,导致,如果某一个定期信
北方南方
·
2020-07-10 04:58
linux系统
linux系统调用
十四、
Linux系统编程
-信号(一)中断、信号、中断和信号
一、中断(1)、中断概念中断是用以提高计算机工作效率、增强计算机功能的一项重要技术。最初引入硬件中断,只是出于性能上的考量。如果计算机系统没有中断,则处理器与外部设备通信时,它必须在向该设备发出指令后进行忙等待(Busywaiting),反复轮询该设备是否完成了动作并返回结果。这就造成了大量处理器周期被浪费。引入中断以后,当处理器发出设备请求后就可以立即返回以处理其他任务,而当设备完成动作后,发送
Tianttt
·
2020-07-10 03:57
Linux系统编程
[linux] C语言
Linux系统编程
-捕获进程信号
typedefvoid(*sighandler_t)(int);1.用typedef给类型起一个别名。2.为函数指针类型定义别名,3.函数指针(指向函数的指针)sighandler_tsignal(intsignum,sighandler_thandler);1.函数原型2.使用自定义的类型别名,作为函数参数和函数返回值3.第一个参数是信号的标号,第二个参数是函数指针implicit-functi
陶士涵
·
2020-07-10 03:38
Linux系统编程
与网络编程——信号介绍,未决信号集,信号屏蔽字,捕捉信号(十)
什么是信号机制信号(signal)机制是Linux系统中最为古老的进程之间的通信机制。Linux信号也可以称为软中断,是在软件层次上对中断机制的一种模拟。在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程发生了什么。信号的发生有两个来源:(1)
努力工作的帅呀帅
·
2020-07-09 10:17
Linux
Linux系统编程
:树莓派 ds18b20温度获取(文件IO相关操作)
文章目录问题解答linux文件io操作文件夹1.opendir()2.readdir()3.closedir()4.open()5.read()函数问题当树莓派配置好ds18b20数字温度传感器后,该温度信息通常保存在下面路径中:/sys/bus/w1/devices/28-04xxxxxxxxxx/w1_slave这里的“28-04xxxxxxxxxx"是数字温度传感器的生产流水号,每一个传感器
梦小羊
·
2020-07-09 09:40
linux系统编程
之信号(七):被信号中断的系统调用和库函数处理方式
一些IO系统调用执行时,如read等待输入期间,如果收到一个信号,系统将中断read,转而执行信号处理函数.当信号处理返回后,系统遇到了一个问题:是重新开始这个系统调用,还是让系统调用失败?早期UNIX系统的做法是,中断系统调用,并让系统调用失败,比如read返回-1,同时设置errno为EINTR中断了的系统调用是没有完成的调用,它的失败是临时性的,如果再次调用则可能成功,这并不是真正的失败,所
weixin_33937499
·
2020-07-09 09:55
[编程] C语言
Linux系统编程
-等待终止的子进程(僵死进程)
1.等待终止的子进程(僵死进程):如果一个子进程在父进程之前结束,内核会把子进程设置为一个特殊的状态,处于这种状态的进程称为僵死进程当父进程获取了子进程的信息后,子进程才会消失。pid_twait(int*status);父进程调用这个方法会被阻塞住,如果子进程终止的时候,此方法会调用并且返回终止子进程的pid#include#include#includeintmain(){intpid,ppi
陶士涵
·
2020-07-09 09:26
【Socket编程】篇六之IO多路复用——select、poll、epoll
文章参考自:http://blog.csdn.net/tennysonsky/article/details/45745887(秋叶原—MikeVS麦克《
Linux系统编程
——I/O多路复用select
mick_seu
·
2020-07-09 00:36
Socket网络编程
《智能家居系统》1
《智能家居系统》1在经过三个星期的实习中,我们做了一个基于ubantu软件上的
Linux系统编程
的智能家居系统。在此,总结一下。
wesigj检
·
2020-07-08 23:53
智能家居系统
Linux系统开发 4 进程资源 环境 fork()子进程 wait() waitpid()僵尸 孤儿进程
【本文谢绝转载,原文来自http://990487026.blog.51cto.com】《大纲》
Linux系统编程
Linux 进程描述符结构体;进程资源上限进程环境变量进程获取/修改环境变量创建子进程fork
weixin_33997389
·
2020-07-08 16:39
《
Linux系统编程
与调试调优技术》四天线下课程--2017年10月25日上海开班
一、课程描述本课程针对从事Linux内核和应用开发以及系统性能调试调优的工程师。本课程详细讲解Linux的工具链、进程调度、内存管理、I/O模型、系统调用等系统原理,以及多进程、多线程、I/O编程的方法,融系统负载分析、内存分析、I/O分析、内核调试、应用调试等实践于理论。在讲解具体的调试和优化方法时,紧扣底层的原理,讲解Linux的各种调试和优化工具具体数据的含义,使得工程师在调试时知其然,知其
Linux阅码场
·
2020-07-07 12:39
LINUX C系统编程与PYTHON中的时间模块对比
今天看python时间模块time的时候发现和
LINUX系统编程
中的时间调用函数基本一样,以前刚好没有好好学习LINUXC编程的时间模块就对比进行了学习。
重庆八怪
·
2020-07-07 03:02
标题
linux系统编程
——文件编程
标题
linux系统编程
——文件编程ps:本文为本人学习记录所用一、如何创建、修改一个文件手动修改文件:打开/创建文件→编辑文件→保存文件→关闭文件linux中使用编程来操作文件,真正了解如何文件编程是很复杂的
admin_wyplmm
·
2020-07-07 02:22
IT入门
Linux系统编程
第一课: CentOS7下who命令的实现
今天是学
Linux系统编程
的第一天,然而明天六级考试我却在这里写代码。。。。不管怎么样先记录下这次实验再说。这一次的内容是手工实现who命令。
Dicridon
·
2020-07-06 21:52
Linux学习
Go并发编程—select的使用
这很类似于
linux系统编程
的select函数。但在Go中,实现的机制明显是不同的。
linux系统编程
的select是轮训的机制,而且监控的是文件描述符,且有数量的限制。
一 铭
·
2020-07-06 12:37
Go语言编程
Go并发编程
《
Linux系统编程
:进程同步与互斥_System V 信号量》
信号量概述信号量广泛用于进程或线程间的同步和互斥,信号量本质上是一个非负的整数计数器,它被用来控制对公共资源的访问。编程时可根据操作信号量值的结果判断是否对公共资源具有访问的权限,当信号量值大于0时,则可以访问,否则将阻塞。PV原语是对信号量的操作,一次P操作使信号量减1,一次V操作使信号量加1。在实际应用中两个进程间通信可能会使用多个信号量,因此SystemV的信号量以集合的概念来管理,具体操作
HarkerYX
·
2020-07-06 10:28
Linux/Unix
系统编程
linux下使用man命令查看系统调用
我在阅读《
linux系统编程
》以及查看网上关于系统函数的博客时,老是看到诸如“详细使用请查看man手册”等等。
庚庚911
·
2020-07-06 10:24
C
linux
miniftpd项目实战视频分享
运用
Linux系统编程
与网络编程所学的知识,带领大家用C语言动手打造一款小型的ftp服务器miniftpd。整个项目代码都是纯手工一行一行敲写出来的,代码量3000多行。
weixin_30292843
·
2020-07-05 20:22
上一页
14
15
16
17
18
19
20
21
下一页
按字母分类:
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
其他