![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
GOD_cheng
这个作者很懒,什么都没留下…
展开
-
linux带缓冲IO操作与不带缓冲IO操作
open和fopen的区别:1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”,装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存 “缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”越大,则操转载 2013-03-12 14:59:24 · 1024 阅读 · 0 评论 -
epoll使用
转自csdn博客:http://blog.csdn.net/ljx0305/article/details/4065058在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的转载 2013-04-27 17:15:21 · 576 阅读 · 0 评论 -
epoll或者kqueue的原理
转自:http://www.zhihu.com/question/20122137首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。不管是文件,还是套接字,还是管道,我们都可以把他们看作流。之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流转载 2013-05-07 16:18:33 · 767 阅读 · 0 评论 -
Linux网络编程--网络知识介绍
Linux网络编程--网络知识介绍(一)Linux网络编程--网络知识介绍Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.客户端 在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序。 比如我们使用ftp程序从另外一转载 2013-04-21 22:12:46 · 778 阅读 · 0 评论 -
select、poll、epoll的比较
elect、poll、epoll的比较http://my.chinaunix.net/space.php?uid=20196318&do=blog&id=366042http://blog.endlesscode.com/2010/03/27/select-poll-epoll-intro/ linux提供了select、poll、epoll接口来实现IO复用,三者的转载 2013-04-27 17:29:01 · 749 阅读 · 0 评论 -
Epoll vs. IOCP
转自:http://blog.csdn.net/sparkliang/article/details/48365361 Epoll vs. IOCPEpoll 和 IOCP 都是为高性能网络服务器而设计的高效 I/O 模型;都是基于事件驱动的。事件驱动有个著名的好莱坞原则(“不要打电话给我们,我们会打电话给你”)。 不同之处在于:1. Epoll 用于 Linux 系统;而转载 2013-04-27 17:20:32 · 892 阅读 · 0 评论 -
QQ服务器要和那么多客户端连(成熟的通信模块)
#include多服务器的动态负载均衡 一个服务器连接数量跟端口好无关系!跟线程有关系,跟机器配置和操作系统最大限度有关系比如说WIN2K支持255个线程 在加个线程共享池就能支持到1K个 在加上集群 1k*n*0。8= 在加上地域布置,1亿都能搞定!!QQ 只是连接服务器查找自己的信息和朋友的信息,再就是接受QQ转载 2013-04-22 22:49:28 · 1205 阅读 · 0 评论 -
Linux写时拷贝技术(copy-on-write)
COW技术初窥: 在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了“写时复制“技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。 那么子进程的物理空间没有代码,怎么去取指令执行exec系统调用呢? 在fork之后exec之转载 2013-04-27 11:08:36 · 853 阅读 · 0 评论 -
linux 下UDP通信(附加测试代码)
转自csdn博客:http://blog.csdn.net/rao_warrior/article/details/8188687运行环境:centos 6.3 说明 :UNIX 网络编程测试代码将客户端、服务端、以及广播消息的服务端都集成一段代码里面,个人感觉还不错呵呵呵里面的注释不多,但是应该不难读懂的,还算比较容易可以把一面代码直接贴下来,用gcc转载 2013-04-24 11:12:50 · 1452 阅读 · 0 评论 -
线程池实现
什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。下面列出线程的一些重要的函数int pthread_create(pthread_t *thread, const转载 2013-04-24 11:04:50 · 672 阅读 · 0 评论 -
fork子进程缓冲
#include unistd.h> #include stdio.h> int main() { pid_t pid; printf( "begin fork\n") ;//line buffer write(STDOUT_FILENO ,"write msg befor fork ,buf after printf\n", sizeo转载 2013-04-24 11:10:10 · 813 阅读 · 0 评论 -
socket也是一种IO(文件处理)
转自:http://www.52rd.com/Blog/Detail_RD.Blog_imjacob_22006.html按: 网络编程也 进行了一段时间了,最近在看ruby的时候,发现 基本的套接字函数理解都有问题。要反思啊=================================================BSD中的 socket编程中 ,tcp 服务器端转载 2013-04-23 15:41:40 · 969 阅读 · 0 评论 -
socket函数详解
本来是想买本书,但是想想,还是想做些更深层次、更复杂的东西出来。 把基本的用法,注意事项搞清楚就可以 了。所以就想着百度一下,百度百科以及大家一般关注的问题都有会出得来吧。。下面把学习的情况做下简单的“备份” 百度百科原文地址:http://baike.baidu.com/view/13870.htm Socket本身就像是个“孔”或“插座”,在计算机领域里叫套转载 2013-04-23 15:07:38 · 1039 阅读 · 0 评论 -
libevent源码分析
libevent实现了网络IO,timer,signal的事件触发机制. 可以很方便的应用于event-driven服务器中,作为其底层事件处理模块. 比较成功的案例有 memcache(分布式缓存), PLB(负载均衡器)等. 最近研究了一下libevent的源码, 版本是1.3b,可以大概分成几个模块:♦ 事件处理框架♦ 事件引擎模块♦ Buffer管理模块转载 2013-04-23 09:37:41 · 765 阅读 · 0 评论 -
浅谈无缓存I/O操作和标准I/O文件操作区别
浅谈无缓存I/O操作和标准I/O文件操作区别(转)原帖地址 http://www.360doc.com/content/11/0521/11/5455634_118306098.shtml。首先,先稍微了解系统调用的概念: 系统调用,英文名systemcall,每个操作系统都在内核里有一些内建的函数库,这些函数可以用来完成一些系统系统调用把应用程序的请求传给转载 2013-03-12 14:53:35 · 738 阅读 · 0 评论 -
简单的使用消息队列的多线程通信
下面是简单的两个进程的通信,简称server.c 和 client.cserver.c#include #include #include #include #include #include #include #include #include #include #include #include #include #define SIZE 256usin原创 2013-06-22 11:05:32 · 1715 阅读 · 0 评论