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系统编程
-通用文件模型
目的:学习Linux文件模型相关的知识。正文目录:Linux的两大抽象文件类型文件描述符通用文件模型:简介4.1演示demo4.2相关要点:与VFS的关系通用文件模型:文件描述符和打开文件的关系5.1相关的内核数据结构5.2列举几种打开文件的情景Linux的两大抽象文件是Linux系统中最基础最重要的抽象。Linux遵循一切皆文件的理念。很多交互操作是通过读写文件来完成,即使所涉及的对象看起来并非
大大大大大板牙
·
2020-08-14 22:51
linux
编程语言
muduo网络库base篇一: 大纲
上周我选择性的读了Linux/UNIX系统编程手册大部分章节,想更深入了解
linux系统编程
。作为一个知乎深度受害者,在知乎你读过的最好的C++开源代码是什么?问题下,看到有人提到muduo。
视此虽近_邈若山河
·
2020-08-14 22:33
muduo网络库
十七、
Linux系统编程
-信号(四)信号在内核中表示、信号的阻塞和未决
一、信号在内核中的表示执行信号的处理动作称为信号递达(Delivery),信号从产生到递达之间的状态,称为信号未决(Pending)。进程可以选择阻塞(Block)某个信号。被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作。注意,阻塞和忽略是不同的,只要信号被阻塞就不会递达,而忽略是在递达之后可选的一种处理动作。信号在内核中的表示如下:二、信号阻塞与未诀三、信号集操
Tianttt
·
2020-08-14 19:37
Linux系统编程
linux系统编程
之信号(三):信号的阻塞与未决
一、信号在内核中的表示实际执行信号的处理动作称为信号递达(Delivery),信号从产生到递达之间的状态,称为信号未决(Pending)。进程可以选择阻塞(Block)某个信号,SIGKILL和SIGSTOP不能被阻塞。被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作。注意,阻塞和忽略是不同的,只要信号被阻塞就不会递达,而忽略是在递达之后可选的一种处理动作。信号在内
s1mba
·
2020-08-14 16:10
linux环境系统编程
_GNUC__宏函数
今天在看
Linux系统编程
这本书的代码的时候看到了GNUC,不太清楚这个宏所以去查了一下,以此记录。
INGNIGHT
·
2020-08-14 16:19
C++奇技淫巧
Linux系统编程
(2)——文件与IO之系统调用与文件IO操作
系统调用是指操作系统提供给用户程序的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得得操作系统内核提供的特殊服务。在linux中用户程序不能直接访部内核提供的服务。为了更好的保护内核空间,将程序的运行空间分为内核空间和用户空间,他们运行在不同的级上,在逻辑上是相互隔离的。在linux中用户编程接口(API)遵循了在UNIX中最流行的应用编程界面标准——POSIX标准。这些系统调用编程接口主
weixin_30929011
·
2020-08-14 11:16
嵌入式linux 开发小知识总结
独乐乐不如众乐乐嵌入式
linux系统编程
常用指令指令描述cpsrcdest-r复制文件夹无指令复制单个文件cp详解sudopasswdroot设置管理员密码suroot用户登录shutdown-hnow
モザイクカケラ
·
2020-08-14 01:45
嵌入式linux-web
嵌入式系统开发
一文搞懂Linux系统开发
C语言基础shell脚本学会使用Makefile常规
Linux系统编程
知识都有什么?哪些常用?哪些不常用?
fensnote
·
2020-08-13 23:22
嵌入式linux应用开发系列
嵌入式
linux
Linux系统开发
Linux系统编程
(守护进程和线程)
文章目录守护进程的特点进程组和会话线程相关函数守护进程的特点一个linux后台服务进程不依赖于控制终端周期性执行某些任务不受用户登录和注销的影响一般以d结尾进程组和会话 进程组:一个进程包含多个进程 会话:多个组组成一个会话.创建会话的进程不能是组长进程;一般创建会话是父进程先fork子进程,然后父进程退出,让子进程调用setsid函数创建一个会话,这个子进程既是会长也是组长;只要是创建了会话
Mr.魏(魏先生)
·
2020-08-13 22:03
Linux
Linux系统编程
(线程同步)
文章目录线程同步的例子线程同步互斥锁死锁:死锁不是linux提供给开发者的一种机制,而是由于开发者操作不当引起的.读写锁:读写锁是一把锁读写锁使用步骤条件变量多个生成者和多个消费者程序在执行的时候core掉的原因分析信号量线程同步的例子创建两个线程,让两个线程共享一个全局变量intnumber,然后让每个线程数5000次数,看最后打印出这个number值是多少?#include#include#i
Mr.魏(魏先生)
·
2020-08-13 22:03
Linux
alin的学习之路(
Linux系统编程
:五)(目录操作、进程相关概念)
alin的学习之路(
Linux系统编程
:五)(目录操作、进程相关概念)1.目录操作1.查看工作目录getcwdchar*getcwd(char*buf,size_tsize)功能:获取当前工作目录(绝对路径
alin_server
·
2020-08-13 17:35
Linux
目录
进程
alin的学习之路(
Linux系统编程
:六)(进程、无名管道)
alin的学习之路(
Linux系统编程
:六)(进程、无名管道)进程相关1.父子进程的不同点子进程拥有自己唯一的进程号子进程没有继承父进程内存锁子进程的资源没有被初始化子进程的CPU计数器被重置为0子进程的阻塞信号集被初始化为空子进程没有继承信号量子进程没有继承父进程关联的记录锁子进程没有继承定时器子进程没有继承
alin_server
·
2020-08-13 17:35
Linux
alin的学习之路(
Linux系统编程
:四)(Makefile,文件I/O)
alin的学习之路(
Linux系统编程
:四)(Makefile,文件I/O)编码格式的调整:visualstuio中用的是GBK的编码,我们在Linuxvim里用的是utf-8编码。
alin_server
·
2020-08-13 17:05
Linux
makefile
linux
makefile
alin的学习之路(
Linux系统编程
:二)(压缩、文件权限、vim)
alin的学习之路(
Linux系统编程
:二)(压缩、文件权限、vim)1.压缩和解压命令tar.gz压缩:tar-cvf压缩包名文件名解压:tar-xvf压缩包名-C解压到的路径tar.bz2压缩:tar-cjf
alin_server
·
2020-08-13 17:04
Linux
alin的学习之路(
Linux系统编程
:九)(SIGCHLD、守护进程、线程)
alin的学习之路(
Linux系统编程
:九)(SIGCHLD、守护进程、线程)1.可重入与不可重入函数不可重入函数:如果有一个函数不幸被设计成为这样:那么不同任务调用这个函数时可能修改其他任务调用这个函数的数据
alin_server
·
2020-08-13 10:11
Linux
alin的学习之路(
Linux系统编程
:十)(互斥锁、读写锁、条件变量、信号量、哲学家就餐问题)
alin的学习之路(
Linux系统编程
:十)(互斥锁、读写锁、条件变量、信号量、哲学家就餐问题)1.互斥锁mutex1.同步与互斥现代操作系统基本都是多任务操作系统,即同时有大量可调度实体在运行。
alin_server
·
2020-08-13 10:11
Linux
锁
信号量
alin的学习之路(
Linux系统编程
:八)(匿名映射、信号)
alin的学习之路(
Linux系统编程
:八)(匿名映射、信号)1.匿名映射父子进程之间的通信如果用普通的共享存储映射会浪费很多的资源,而这些资源是没有必要去用到的,所以有了匿名映射匿名映射无需依赖一个文件即可创建映射区
alin_server
·
2020-08-13 10:10
Linux
alin的学习之路(
Linux系统编程
:七)(命名管道、共享存储映射)
alin的学习之路(
Linux系统编程
:七)1.有名管道命名管道(FIFO)不同于无名管道之处在于它提供了一个路径名与之关联,以FIFO的文件形式存在于文件系统中,这样,即使与FIFO的创建进程不存在亲缘关系的进程
alin_server
·
2020-08-13 10:10
Linux
命名管道
共享存储映射
alin的学习之路(
Linux系统编程
:三)(vim,gcc,库,gdb)
alin的学习之路(
Linux系统编程
:三)(vim,gcc,库,gdb)1.vim的使用vim有三种模式:命令模式,末行模式,编辑模式光标的移动【命令模式】h向左,j向下,k向上,l向上移动到行首:^
alin_server
·
2020-08-13 10:10
Linux
静态库
linux
vim
gdb
alin的学习之路(
Linux系统编程
:一)(Linux基础命令)
alin的学习之路(
Linux系统编程
:一)(Linux基础命令)1.Linux学习准备操作系统的作用向上给用户提供简单的操作计算机硬件的方式对下管理硬件承上启下程序运行在操作系统上,程序运行时的资源由操作系统提供
alin_server
·
2020-08-13 09:34
Linux
PowerPC 与 Linux 内核
1用户空间、内核空间2虚拟内存的管理3外设管理A交叉编译环境ELDKB嵌入式系统的应用CPowerPC、
Linux系统编程
i在PowerPC上执行程序ii在Linuxmodule上执行程序=======
nanashiro
·
2020-08-11 17:42
电子
FPGA
Linux系统编程
:signal、sigaction、sigpending、sigprocmask函数
一、signal作用:设置信号处理方式,当进程接收到信号时,指定特定的handler方法来处理信号(只起一次作用)。头文件#include定义函数void(*signal(intsignum,void(*handler)(int)))(int);函数说明signal()会依参数signum指定的信号编号来设置该信号的处理函数。当指定的信号到达时就会跳转到参数handler指定的函数执行。如果参数h
Mr.zhang0325
·
2020-08-11 12:30
Linux
C/C++
Linux系统编程
:raise函数、wait函数、waitpid函数
wait()函数说明wait()函数用于使父进程(也就是调用wait()的进程)阻塞,直到一个子进程结束或者该进程接收到了一个指定的信号为止。如果该父进程没有子进程或者它的子进程已经结束,则wait()函数就会立即返回。waitpid()函数说明:waitpid()的作用和wait()一样,但它并不一定要等待第一个终止的子进程(它可以指定需要等待终止的子进程),它还有若干选项,如可提供一个非阻塞版
Mr.zhang0325
·
2020-08-11 12:30
Linux
C/C++
Linux系统编程
:kill函数
参数:pid:可能选择有以下四种pid大于零时,pid是信号欲送往的进程的标识。pid等于零时,信号将送往所有与调用kill()的那个进程属同一个使用组的进程。pid等于-1时,信号将送往所有调用进程有权给其发送信号的进程,除了进程1(init)。pid小于-1时,信号将送往以-pid为组标识的进程。sig:准备发送的信号代码,假如其值为零则没有任何信号送出,但是系统会执行错误检查,通常会利用si
Mr.zhang0325
·
2020-08-11 12:30
Linux
C/C++
Unix/
Linux系统编程
-知识脉络
2019独角兽企业重金招聘Python工程师标准>>>本文档下载地址http://pan.baidu.com/s/1dFqeJvzUnix/
Linux系统编程
尹德位2016cnyinlinux@163.
weixin_34092455
·
2020-08-11 04:09
4.
Linux系统编程
-网络编程-socket
4.
Linux系统编程
-网络编程-socket套接字socket网络字节序IP地址转换函数sockaddr数据结构网络套接字函数socket模型创建流程图socket函数bind函数listen函数accept
frieryumao
·
2020-08-11 03:56
C++
linux
通信
Linux系统编程
下的套接字socket编程函数
套接字:他是操作系统内核中的一个数据结构,它是网络中的节点进行相互通信的门户。它是网络进程的ID。-------------------------------------------------------------------------------------------------------------------------------------------------------
ckije
·
2020-08-11 03:43
Linux系统编程
---消息队列函数详解+通过父子进程实现互发消息代码实例
1、消息队列的简介消息队列作为通信方式的一种,在本质上是位于内核空间的链表,每个链表的节点都是一条消息。每条消息都有自己的消息类型且消息类型必须大于0。每种消息类型都被所对应的链表所维护。如图1,2,3,4表示不同的数据,消息类型为0的链表记录了所有消息加入队列的顺序,其中红色箭头表示消息加入的顺序。图片及简介参考自:简书博主小Q_wang2、linux下消息队列查看和删除指令ipcs--查看进程
Windalove
·
2020-08-11 02:02
linux
linux
c++
经验分享
队列
Linux系统编程
--网络套接字Socket函数详解+互发消息聊天例子+扩充知识点
文章主要分为三大部分,①预备知识②函数详解③代码实例+解释。内容过多,可直接根据目录进行翻阅查看需要的部分。目录在有左下角↙↙↙套接字的概念Linux当中的一种文件类型,伪文件,不占用存储空间,可进行IO操作,可间接看做文件描述符使用预备知识(代码中会使用)①什么是ip、port(端口)ip:在网络环境中,唯一表示一台主机Port:在主机中唯一表示一个进程通俗来将ip当作地址port当作门牌号②通
Windalove
·
2020-08-11 02:01
linux
linux
网络
socket
c++
Linux系统编程
---Socket套接字之回射服务器-(+详细解释)
回射服务器:简单的说就是即从客户端收到什么数据,就发送什么数据回去先看功能实现部分代码:**前提须知**:read读取不到信息会阻塞等待!**执行过程**:1-》2-》5-》6-》3-》4/*客服端部分*/1scanf("%s",wbuf);//等待键盘输入2write(sfd,wbuf,strlen(wbuf));//写入服务器3read(sfd,rbuf,sizeof(rbuf));//等待客
Windalove
·
2020-08-11 02:01
linux
信盈达、嵌入式
LINUX系统编程
在使用ls-l命令显示的信息中,开头是由10个字符构成的字符串,其中第一个字符表示文件类型,它可以是下述类型之一:普通文件目录(d)符号链接(l)块设备文件(b)字符设备文件(c)命名管道(p)socket文件(s)文件的创建打开和关闭#includeFILE*fopen(constchar*path,constchar*mode);//文件名模式size_tfread(void*ptr,size
poor_guy_liu
·
2020-08-10 18:02
信盈达系统编程
Linux下undefined reference to 'pthread_create'解决方法
接触了
Linux系统编程
中的线程编程模块,可gccsample.c(习惯把书上的sample代码写进sample.c文件中)出现“undefinedreferenceto‘pthread_create’
nirvana_newbie
·
2020-08-10 18:16
LINUX
Linux进程之alarm()函数——闹钟信号传送
转载地址最近在学习
Linux系统编程
遇到了一个很有意思的函数:alarm(),它是一个用来设置信号传送的闹钟函数。网上找了一些资料,结合自己的学习体会,现在Mark一下。
仄平平仄
·
2020-08-10 08:06
C/C++
alarm
linux
signal
Linux系统编程
手册读书笔记——第3章 系统编程概念
系统调用系统调用使处理器从用户态切换到内核态每个系统调用都有一个唯一的数字来标识系统调用流程:参数入栈,传入外壳函数,外壳函数将参数置入特定寄存器(包括系统调用编号),执行中断指定。内核响应中断指令,调用system_call()里程处理中断。如何处理中断呢?在内核栈保存寄存器的值审核系统调用编号的有效性通过编号找到相应的系统调用服务例程,调用时会先检查参数的有效性,然后执行任务。结果状态返回给s
美如画是我
·
2020-08-10 06:39
Linux读书笔记
学习linux/unix编程方法的建议,学习Linux的四个步骤
学习Linux的四个步骤假设你是计算机科班出身,计算机系的基本课程如数据结构、操作系统、体系结构、编译原理、计算机网络你全修过我想大概可以分为4个阶段,水平从低到高从安装使用=>linux常用命令=>
linux
guoqin863
·
2020-08-09 21:32
linux系统编程
之管道(二):管道读写规则
一,管道读写规则当没有数据可读时O_NONBLOCKdisable:read调用阻塞,即进程暂停执行,一直等到有数据来到为止。O_NONBLOCKenable:read调用返回-1,errno值为EAGAIN。当管道满的时候O_NONBLOCKdisable:write调用阻塞,直到有进程读走数据O_NONBLOCKenable:调用返回-1,errno值为EAGAIN如果所有管道写端对应的文件描
weixin_34185512
·
2020-08-09 00:41
视频教程-
Linux系统编程
第2期:文件IO编程实战-嵌入式
Linux系统编程
第2期:文件IO编程实战6年嵌入式开发经验,在多家半导体公司从事芯片测试、验证、Linux驱动开发都工作。熟悉芯片设计流程、熟悉产品平台方案开发流程。
weixin_31659531
·
2020-08-09 00:20
Linux系统编程
---线程同步---条件变量
1.条件变量介绍条件变量时线程同步的另一种方式。条件变量个多个线程提供了一个会合的场所。条件变量和互斥量一起使用,允许线程以无竞争的方式等待特定条件的发生。2.条件变量作用互斥量和条件变量联合避免了条件竞争。条件竞争:一个线程预备等待一个条件变量,当它在真正进入等待之前,另一个线程恰好触发了该条件。个人理解:线程A测试条件不满足,进而在释放锁和进入阻塞之间,其他线程触发了条件,而线程A却未知。举例
5hello_linux5
·
2020-08-08 22:31
Linux系统编程
Linux系统编程
:mmap使用技巧
简介本文将介绍了mmap的基本概念,并重点介绍mmap使用中常遇到的问题。mmap是什么mmap函数把一个文件或一个Poxis共享内存区对象映射到调用进程的地址空间,以使用普通文件提供内存映射I/O,或使用特殊文件以提供匿名内存映射,或使用shm_open以提供无亲缘关系进程间的Posix共享内存区。使用内存映射文件所得到的奇妙特性是,所有的I/O都在内核的掩盖下完成,只需编写存取内存映射区中各个
Bob Liu
·
2020-08-08 22:52
Linux应用
C/C++
Linux系统编程
——线程池
线程池基本原理在传统服务器结构中,常是有一个总的监听线程监听有没有新的用户连接服务器,每当有一个新的用户进入,服务器就开启一个新的线程用户处理这个用户的数据包。这个线程只服务于这个用户,当用户与服务器端关闭连接以后,服务器端销毁这个线程。(关于并发服务器更多详情,请看《并发服务器》)。然而频繁地开辟与销毁线程极大地占用了系统的资源,而且在大量用户的情况下,系统为了开辟和销毁线程将浪费大量的时间和资
Mike江
·
2020-08-08 21:55
【Linux环境编程】
Linux环境编程
Linux系统编程
——多任务的同步与互斥
现代操作系统基本都是多任务操作系统,即同时有大量可调度实体在运行。在多任务操作系统中,同时运行的多个任务可能:都需要访问/使用同一种资源多个任务之间有依赖关系,某个任务的运行依赖于另一个任务这两种情形是多任务编程中遇到的最基本的问题,也是多任务编程中的核心问题,同步和互斥就是用于解决这两个问题的。互斥:是指散步在不同任务之间的若干程序片断,当某个任务运行其中一个程序片段时,其它任务就不能运行它们之
Mike江
·
2020-08-08 21:55
【Linux环境编程】
Linux环境编程
Linux系统编程
——进程间通信概述
进程是一个独立的资源分配单元,不同进程(这里所说的进程通常指的是用户进程)之间的资源是独立的,没有关联,不能在一个进程中直接访问另一个进程的资源(例如打开的文件描述符)。但是,进程不是孤立的,不同的进程需要进行信息的交互和状态的传递等,因此需要进程间通信(IPC:InterProcessesCommunication)。进程间通信的目的:数据传输:一个进程需要将它的数据发送给另一个进程。通知事件:
Mike江
·
2020-08-08 21:54
【Linux环境编程】
Linux环境编程
Linux
多任务编程
系统编程
进程间通信概述
Linux系统编程
——I/O多路复用select、poll、epoll的区别使用(转)
I/O多路复用技术是为了解决进程或线程阻塞到某个I/O系统调用而出现的技术,使进程不阻塞于某个特定的I/O系统调用。select(),poll(),epoll()都是I/O多路复用的机制。I/O多路复用通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪,就是这个文件描述符进行读写操作之前),能够通知程序进行相应的读写操作。但select(),poll(),epoll()本
sunshine008
·
2020-08-08 21:47
linux
c
网络
【
linux系统编程
学习笔记】第五节:进程通信方式之IPC通信机制1(消息队列)
“我希望那个世界的自己,可以是一名旅行家,周游世界,记录世界各地的风景。”IhopeIcanbeatraveler,travelingaroundtheworldandrecordingtheworldwidescenery.进程通信方式之IPC通信机制(消息队列)System-VIPC通信机制程序构架流程:IPC对象的key相关APIkey_tftok(constchar*pathname,in
浣熊会咬人
·
2020-08-08 20:59
Linux
系统编程
Linux高并发网络编程开发——libevent
10-
Linux系统编程
-第15天(libevent)一、学习目标二、代码分析》分析程序(epoll_loop.c):1/*2*epoll基于非阻塞I/O事件驱动3*/4#include5#include6
AllisWell_WP
·
2020-08-08 18:11
Linux系统编程
——文件I/O操作
一非缓冲文件操作针对于小规模文件的读写,或者是实时设备,例如调制解调器、连接于串口的工业设备。执行非缓冲文件操作后,应用程序将立即获取或传送数据。3个操作系统预先分配的文件标识符0:标准输入,即通过终端输入1:标准输出,即通过终端输出2:标准错误,系统中存放错误信息的堆栈1.使用read()读取文件read()函数用于从文件中将信息读取到指定的内存区域中。一般形式为:read(文件标识符,内存块指
无夜之凛冬
·
2020-08-08 18:21
Linux系统编程
Linux系统编程
——I/O多路复用select、poll、epoll的区别
1.概述I/O多路复用技术是为了解决进程或线程阻塞到某个I/O系统调用而出现的技术,使进程不阻塞于某个特定的I/O系统调用。select(),poll(),epoll()都是I/O多路复用的机制。I/O多路复用通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪,就是这个文件描述符进行读写操作之前),能够通知程序进行相应的读写操作。但select(),poll(),epol
Simon_Crystin
·
2020-08-08 13:05
Linux
linux系统编程
之文件与I/O(二):文件的读取写入
一、read系统调用一旦有了与一个打开文件描述相关连的文件描述符,只要该文件是用O_RDONLY或O_RDWR标志打开的,就可以用read()系统调用从该文件中读取字节函数原型:ssize_tread(intfd,void*buf,size_tcount);参数:fd:想要读的文件的文件描述符buf:指向内存块的指针,从文件中读取来的字节放到这个内存块中count:从该文件复制到buf中的字节个数
s1mba
·
2020-08-08 13:33
linux环境系统编程
linux系统编程
之文件与I/O(三):目录的操作
一、目录的访问功能说明:打开一个目录原型:DIR*opendir(char*pathname);返回值:打开成功,返回一个目录指针打开失败,则返回NULL功能说明:访问指定目录中下一个连接的细节原型:structdirent*readdir(DIR*dirptr);返回值:返回一个指向dirent结构的指针,它包含指定目录中下一个连接的细节;没有更多连接时,返回NULL功能说明:关闭一个已经打开的
Sandeldeng
·
2020-08-08 13:23
Linux环境系统编
Linux系统编程
——系统调用之 I/O 操作(文件操作)
文件描述符在Linux的世界里,一切设备皆文件。我们可以系统调用中I/O的函数(I:input,输入;O:output,输出),对文件进行相应的操作(open()、close()、write()、read()等)。打开现存文件或新建文件时,系统(内核)会返回一个文件描述符,文件描述符用来指定已打开的文件。这个文件描述符相当于这个已打开文件的标号,文件描述符是非负整数,是文件的标识,操作这个文件描述
Mike江
·
2020-08-08 11:24
【Linux环境编程】
Linux环境编程
上一页
12
13
14
15
16
17
18
19
下一页
按字母分类:
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
其他