ICode9

精准搜索请尝试: 精确搜索
  • Linux系统编程001--系统IO2022-09-14 18:34:39

    1. 文件系统:用来存储、组织、管理文件的一套方式、协议 2. 文件 文件的属性:i-node唯一表示一个文件的存在与否 文件的内容 3. Linux系统如何实现文件的操作? 硬件层: inode(属性)--->文件的内容 Linux内核: struct inode{}用来描述一个文件的屋里inode的信息【链表保存】,系

  • Linux 网络编程 实现双方通信2022-09-10 03:01:28

    //服务端 #include <stdio.h>#include <stdlib.h>#include <sys/types.h> #include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <string.h>#include <unistd.h>#include <errno.h>int main(in

  • Linux IO多路复用2022-09-09 00:34:48

    https://segmentfault.com/a/1190000003063859 \ select poll epoll 操作方式 遍历 遍历 回调 底层实现 数组 链表 哈希表 IO效率 每次调用都进行线性遍历,时间复杂度为O(n) 每次调用都进行线性遍历,时间复杂度为O(n) 事件通知方式,每当fd就绪,系统注册的回调函数就会被

  • 简陋的服务端代码2022-09-07 01:00:36

    #include<stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> //#include<linux/in.h> #include <netinet/in.h> #include <arpa/inet.h> #include<stdlib.h> #include<string.h> #incl

  • 解 Linux 的 epoll 机制2022-09-07 00:03:50

       在 Linux 系统之中有一个核心武器:epoll 池,在高并发的,高吞吐的 IO 系统中常常见到 epoll 的身影。 IO 多路复用 在 Go 里最核心的是 Goroutine ,也就是所谓的协程,协程最妙的一个实现就是异步的代码长的跟同步代码一样。比如在 Go 中,网络 IO 的 read,write 看似都是同步代码,其

  • Linux Epoll实现机制2022-09-05 23:32:25

    Epoll是基于事件通知机制的多路复用体系 相比异步IO复用机制的实现,epoll分三个部分:   create:完成内核态的初始化。所有连接的fd都会被构建到rdr的这个红黑树里面。 当数据包来了以后,维护rdlist(保存所有就绪的fd),这样可以避免每次都传输整个fd set。用户态只需要查询这个rdlist(rea

  • 【IO复用】epoll和select以及poll的区别2022-09-01 12:00:08

    select原理 说在前面,整个select在内核空间中的工作事实上非常有趣,中间还会穿插一些可抢占点,检测当前是否有进程可以调度,增加系统的实时性 初始化阶段: FD_set,把要监听的fd都添加到监听集合中去 监听阶段: 调用select() 通过系统调用,会把监听集合中所有fd都copy到kernel space,并填充f

  • h3c s6800交换机probe命令2022-08-21 10:35:37

    <H3C>sysSystem View: return to User View with Ctrl+Z. [H3C]probe[H3C-probe]?Probe view commands: INTEGER<0-1> Switch NO bcm BCM [H3C-probe]bcm slot 1 chip 0 vBroadcom Command Monitor: Copyright (c) 1998-2010 Broadcom C

  • IO多路复用2022-08-19 01:01:40

    1、什么是多路复用 IO多路复用(IO Multiplexing)一种同步IO模型,单个进程/线程就可以同时处理多个IO请求。一个进程/线程可以监视多个文件句柄;一旦某个文件句柄就绪,就能够通知应用程序进行相应的读写操作;没有文件句柄就绪时会阻塞应用程序,交出cpu。多路是指网络连接,复用指的是同一个

  • 【C语言】使用pipe,execlp,dup2实现ls | wc -l2022-08-17 16:01:48

    #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <pthread.h> void sys_err(const char *str) { perror(str); exit(1); } int main(int argc,char *argv[]) { int fd[2]; int r

  • 关于read指向缓冲区的理解2022-08-17 13:02:48

    read在linux原型定义如下:   #include <unistd.h> ssize_t read(int fd, void *buf, size_t count); 关于buf,man手册解释如下: “read() attempts to read up to count bytes from file descriptor fd into the buffer starting at buf.” 也就是说,read读取数据后,放到buf缓冲区中

  • linux-0.11分析:进程初始化函数init(),第二部分(void) open("/dev/tty0",O_RDWR,0),第十二篇随笔2022-08-17 10:01:23

    第二部分,(void) open("/dev/tty0",O_RDWR,0); 参考 [github这个博主的 厉害][ https://github.com/sunym1993/flash-linux0.11-talk ] 它会触发一个int 0x80中断,会找的sys_open的函数执行 看看这个函数吧 fs文件 -> open.c int sys_open(const char * filename,int flag,int mode)

  • 个人学习-Linux-IO多路复用2022-08-17 00:04:08

    Linux I/O的多路复用 参考链接: [1]confirmwz博客:Epoll原理解析https://blog.csdn.net/armlinuxww/article/details/92803381; [2]hechen知乎专栏: 一文看懂IO多路复用https://zhuanlan.zhihu.com/p/115220699; weixin_39934085博客: io多路复用的原理和实现_彻底理解 IO 多路复用实

  • 【C语言】无名管道2022-08-13 14:04:02

    #include <unistd.h> #include <sys/types.h> #include <stdio.h> int main(void) { int fd[2]; int pid; if(pipe(fd) == -1) perror("pipe");//创建子进程 pid = fork();//判断如果是父进程 if(pid > 0) {//关闭管道读端

  • linux 多线程之间使用管道进行通讯2022-08-12 16:01:04

      参考  (129条消息) linux c 使用fifo管道进行多线程间通信_土豆西瓜大芝麻的博客-CSDN博客_多线程fifo 稍作修改 #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <string.h&

  • epoll的实现原理2022-08-12 00:00:22

    1.为什么在用户态协议栈实现epoll? 内核协议栈是对内核文件系统的管理,vfs。fd是用户空间,内核的epoll是没办法管理int类型的fd。 2.协议栈如何与epoll模块通信 客户端与服务器三次握手之后,会加入到全连接队列,这时候会通知epoll   从协议栈回调到epoll 1.通过fd查找对应的节点 2.把

  • 专题8-I2C驱动程序设计-第5课-I2C自编设备驱动设计2022-08-10 23:00:09

    1、概述        2、编程   #include <unistd.h> #include <stdio.h> #include <fcntl.h> int main() { int i, fd; char write_data[256]; char read_data[256]; //打开at24c02对应的sys文件 fd=open("/sys/bus/i2c/devices/0-0050/e

  • CF1713E Cross Swapping2022-08-08 19:35:19

    https://codeforces.com/contest/1713/problem/E 写了个随机合并的并查集,,,没过。。。。。。 反手按秩!!!!!!!!! #include <bits/stdc++.h> //#define int long long #define ID(i,j) ((i-1)*n+j) #define pb push_back using namespace std; const int M=1002,N=(int)(2e6+5); int n,a[M][M

  • accept函数2022-08-04 21:00:41

    #include <sys/socket.h> int accept(int sockfd,struct sockaddr *cliaddr,socklen_t *addrlen);                     返回:若成功返回非负描述符,若出错则返回-1   参数cliaddr和addrlen用来返回已连接的对端(客户)进程的协议地址。addrlen是值-结果参数:调用

  • linux打开V4L2摄像头视频流(MJPEG格式)2022-08-03 20:34:28

    参考链接:https://blog.csdn.net/tugouxp/article/details/118516385 源码:ls /dev/ 查看摄像头是video编号比如:video0 video1 点击查看代码 #include <stdio.h> #include <sys/types.h> #include <sys/mman.h> #include <sys/stat.h> #include <fcntl.h> #includ

  • ZPL语言中怎么调用中文打印2022-08-03 15:34:57

    ZEBRA中文字库的用法在ZEBRA提供的中文字库里包括一个简宋体 Msgbmd24.zsc 和一个繁楷体Mkaimd24.zsc,以及三个码表文件GB.ZSE,BIG5.ZSE,UNICODE.ZSE。1 在开始工作之前首先确认打印机连在并口,或将串口设成N,8,1。建议 用并口。2 根据需要选择字体和内码码表,并将相应的文件COPY 到打印

  • 通过匿名管道实现播放网络视频2022-08-03 08:33:59

    伪代码实现通过匿名管道播放网络视频、音乐等。 示例:player.c(子读父写) #include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/wait.h>#include <fcntl.h> int main(){   int pfd[2];   pid_t pid;   int fd;   if(pipe(pfd

  • 【操作系统】I/O 多路复用,select / poll / epoll 详解2022-07-27 22:36:52

    1. 文件描述符 fd 与 socket 1.1 什么是文件描述符 文件描述符(file descriptor)是一个非负整数,从 0 开始。进程使用文件描述符来标识一个打开的文件。 系统为每一个进程维护了一个文件描述符表,表示该进程打开文件的记录表,而文件描述符实际上就是这张表的索引。当进程打开(open)或者新

  • ssl 使用流程是如何的(仅供参考)?2022-07-27 10:34:59

    #include <QCoreApplication> #include <chrono> #include <thread> #include <memory> #include <openssl/ssl.h> struct SSL_CTX_Deleter { void operator()(SSL_CTX* object) { SSL_CTX_free(object); } }; struct SSL_Deleter {

  • Linux 文件 IO 基础操作2022-07-22 22:04:37

    Linux文件IO 与 C标准库文件IO 虚拟地址空间 虚拟地址通过页表映射到屋里内存,页表由操作系统维护并被处理器引用。 分为用户段(0~3G)和内核段(3G ~ 4G), 如下图所示。 Ref 文件描述符 def: Linux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有