自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

转载 memcpy和memmove的区别。。

memcpy()和memmove()都是C语言中的库函数,在头文件string.h中,其原型分别如下:   DE>void *memcpy(void *dst, constvoid *src, size_t count); void *memmove(void *dst, const void *src, size_tcount);DE>   它们都是从s

2013-07-21 18:32:08 422

原创 位段

在redis对象的代码中,有下面这一段,对于位段的语法以前没接触过。记录一下 /* * Redis 对象 */ typedef struct redisObject { // 类型 unsigned type:4; // 不使用(对齐位) unsigned notused:2; // 编码方式 unsigned encoding:4;

2013-07-11 21:21:27 600

原创 非阻塞connect需要处理的问题

套接字状态默认为阻塞的。对于非阻塞的套接字,如果相应的操作没有满足,就会立即返回EWOULDBLOCK错误,使用比较多即TCP的connect函数。 阻塞的connect要等到3次握手完成才能返回,因此要完成阻塞的connect,需要一个RTT时间,这个RTT时间波动比较大,在局域网中还好,如果在广域网中可能达到几秒,我们可以再这段时间内继续建立其他链接,或者处理其他工作。这就要使用非阻塞con

2013-07-09 20:42:23 1174

原创 守护进程和inetd超级服务器

守护进程(daemon)一般在系统自举时启动,直到系统关闭时才终止。没有控制终端,在后台运行。 编写守护进程的规则: 1、首先umask将文件屏蔽字设置为0 原因:由父进程继承来的文件屏蔽字,可能屏蔽了读写权限,所以回复初始权限 2、fork子进程,然后父进程exit退出,(一般fork两次) 原因:子进程继承父进程的进程组ID,但是有新的进程ID,这就保证子进程不是一个进程组的组长

2013-06-26 20:52:06 548

原创 (记录)如何取结构体中成员的偏移

在linux一站式编程里看到一段程序。unix域套接字绑定。 #include #include #include #include int main(void) { int fd, size; struct sockaddr_un un; memset(&un, 0, sizeof(un)); un.sun_family = AF_UNIX;

2013-06-24 09:21:54 864

原创 基本UDP套接字编程

UDP是无连接不可靠的数据报协议,非常不同于TCP提供的面向连接的可靠字节流。然而相比于TCP,有些场合更适合使用UDP,使用UDP的一些常见应用程序有: DNS,NFS和SNMP。借用linux一站式编程里的图: 一、基本套接字函数 udp所用函数: #include ssize_t recvfrom(int sockfd, void *buff, size_t nbytes, i

2013-06-23 14:48:49 548

原创 select和poll程序测试以及结果分析

一、select程序测试 首先启动,UNP程序目录下的tcpcliserv/tcpservselect01.c,当然首先需要编译,UNP每个目录下,都写有Makefile文件,make自动编译一下就可以了。然后运行以下客户端程序; #include #include #include #include #include #include #define SERV_PORT

2013-06-23 12:53:55 678

原创 select poll和epoll使用和区别

Linux下可以通过select poll以及epoll来实现IO复用,所谓I/O多路复用机制,就是说通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就 绪),能够通知程序进行相应的读写操作。select和poll本质上没有什么区别,都时采用轮循的方式,来查看描述符就绪,select有最大链接限 制,而poll使用链表,就没有最大描述符限制。epoll是2.6内核对开始对它

2013-06-20 21:28:42 753

原创 I/O模型以及select和poll函数

Unix下可用的5中I/O模型: 1. 阻塞式I/O模型 2.非阻塞式I/O模型 3.I/O复用(select poll epoll):目前linux下几乎都使用epoll。 4.信号驱动式I/O(SIGIO) 5.异步I/O(POSIX的aio_系列函数) 一、阻塞式I/O模型 默认情况下,所有套接字都是阻塞的,write,read套接字时都是阻塞的,下图片来源于UNP。

2013-06-18 21:43:22 808

原创 TCP C/S程序示例以及问题

利用前面基本的套接字函数,写一个TCP回射服务器程序。并总结出现的问题,以及解决方法。 /*  * File:   main.cpp  * Author: zal  *  * Created on 2013年6月17日, 下午2:45  */ #include #include #include #include #include #include #include #in

2013-06-17 17:38:38 583

原创 Nutch启动shell脚本分析

Nutch笔记 1.学习nutch的启动shell脚本分析 $NUTCH_HOME/runtiom/deploy/bin/nutch 这是nutch在hadoop上运行时的启动脚本,有一个nutch.job 文件,就是把这个文件放在hadoop上运行的 如上图所示为nutch1.4的内容,所以在改变nutch 的配置文件后需要Ant重新编译,把.job文件替

2013-06-17 09:16:07 940

原创 基本socket函数和C/S流程

主要讲解一个完整TCP客户、服务器程序所需要的基本套接字函数。所需函数如图4-1所示(图片来源于linux一站式编程): 一、基本函数 1. socket函数 socket可以看成是用户进程与内核网络协议栈的编程接口。 socket不仅可以用于本机的进程间通信,在进程间通信,用共享内存的方式是最快的,但是基于socket的通信移植性较好,在目前分布式几乎都是用的基于socket

2013-06-16 21:41:40 661

原创 套接字编程简介

1.Socket地址结构 1.1 IPv4        ipv4的套接字地址结构占用20个字节 struct in_addr{ in_addr_t s_addr; //32-bit } struct sockaddr_in{ uint8_t sin_len; // 1-byte sa_family_t sin_family; // ui

2013-06-16 21:07:32 447

posix多线程程序设计中文版

posix多线程编程资料,详细介绍了如何进行多线程编程以及调试多线程程序。

2013-06-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除