Chinaunix首页 | 论坛 | 博客
  • 博客访问: 419828
  • 博文数量: 124
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 872
  • 用 户 组: 普通用户
  • 注册时间: 2018-03-29 14:38
个人简介

默默的一块石头

文章分类

全部博文(124)

文章存档

2022年(26)

2021年(10)

2020年(28)

2019年(60)

我的朋友

发布时间:2022-01-24 14:58:31

1.睡眠队列static inline wait_queue_head_t *sk_sleep(struct sock *sk){ BUILD_BUG_ON(offsetof(struct socket_wq, wait) != 0); return &rcu_dereference_raw(sk->sk_wq)->wait;}static inline void sock_poll_wait(struct file *filp, struct socket *sock,   poll_table *p){ if (!poll_does_not_wait(.........【阅读全文】

阅读(735) | 评论(0) | 转发(0)

发布时间:2022-01-20 16:03:53

前言在了解零拷贝之前,我们先来看看标准的的I/O操作..1.传统IO的原理标准 I/O又被称作缓存 I/O ,大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linux 的缓存 I/O 机制中,操作系统会将 I/O 的数据先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。传统IO的原理缓存 I.........【阅读全文】

阅读(702) | 评论(0) | 转发(0)

发布时间:2022-01-20 15:03:16

APUE一书将writev的介绍放在了Advanced I/O部分,个人拙见,它和write应该是属于同层次的IO,谈不上Advanced。使用场景大体而言,write面向的是连续内存块,writev面向的是分散的数据块,两个函数的最终结果都是将内容写入连续的空间。已知每个pair的空间是单独分配的,那么在这个场景下,如果想要使用write.........【阅读全文】

阅读(668) | 评论(0) | 转发(0)

发布时间:2022-01-17 10:07:53

#include stdio.h #include sys/types.h #include sys/socket.h #include unistd.h #include sys/epoll.h #include netdb.h #include stdlib.h #include fcntl.h #include sys/wait.h #include errno.h #define PROCESS_NUM 4#define MAXEVENTS 64#define .........【阅读全文】

阅读(385) | 评论(0) | 转发(0)

发布时间:2022-01-12 10:40:35

测试内容:在spin_lock获取了锁,且不unlock的情况下对数据进行访问。相关代码ssize_t spin_lock_sleep_read(struct file * filp, char __user * buf, size_t count,   loff_t * f_pos){ struct spin_lock_sleep_dev *dev = filp->private_data; ssize_t retval = 0; dev-.........【阅读全文】

阅读(342) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册