上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 71 下一页
摘要: 本程序是recvmsg()函数的简单应用:/* ************************************************************************ * Filename: msg.c * Description: * Version: 1.0 * Created: 2011年08月16日 20时07分52秒 * Revision: none * Compiler: gcc * Author: YOUR NAME (), * Company: * **************************************************** 阅读全文
posted @ 2011-08-16 20:35 hnrainll 阅读(5257) 评论(1) 推荐(0) 编辑
摘要: 名字 recv, recvfrom, recvmsg - 从套接口接收一个消息 概要#include <sys/types.h>#include <sys/socket.h>ssize_t recv(int sockfd, void *buf, size_t len, int flags);ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags);描述recvfrom和recvmsg()用 阅读全文
posted @ 2011-08-16 20:00 hnrainll 阅读(10193) 评论(0) 推荐(0) 编辑
摘要: 导读:本文是从《The Singular Secret of the Rockstar Programmer》这篇文章翻译而来。译文来自外刊IT评论《编程巨星的唯一秘诀》。内容如下:别以为是那些软件开发定律,别以为是开发出那些特殊用途的软件,别以为是软件设计技术本身。只有一条真理决定了一个软件程序员的成功还是失败。由于坚持这个真理,一个资深的程序员能在一天的时间里学会一门新的编程语言,而由于不坚持这条真理,一个初级的程序员用十年时间也只能挣到一份糊口的钱、永远是来实现别人的设计、永远不够优秀而得不到晋升的机会。这条真理让你看清了差的程序员和好的程序员的不同之处,好的程序员和伟大的程序员的不同之 阅读全文
posted @ 2011-08-16 19:06 hnrainll 阅读(285) 评论(0) 推荐(2) 编辑
摘要: 1、open 是系统调用 返回的是文件句柄,文件的句柄是文件在文件描述副表里的索引,fopen是C的库函数,返回的是一个指向文件结构的指针。2、fopen的实现要调用open, 关键看你想返回什么了, FILE指针还是描述符? 3、32位环境下,编译加“-D_FILE_OFFSET_BITS=64” 要在open里加O_LARGEFILE标记 [code]static int ext2_open_file (struct inode * inode, struct file * filp){ if (!(filp->f_flags & O_LARGEFILE) && 阅读全文
posted @ 2011-08-16 17:57 hnrainll 阅读(3166) 评论(1) 推荐(0) 编辑
摘要: 昨天在《C Programming FAQs》上看见了一段类似的代码,刚刚在CSDN问了,又Google了一下,整理下来。代码:#include <stdio.h>FILE *myfopen(char *name){FILE *fp=fopen(name,"w");fprintf(fp,"abcdefg");return fp;}int main(){FILE *fptr=myfopen("example.txt");fprintf(fptr,"ABCDEFG");fclose(fptr);return 阅读全文
posted @ 2011-08-16 17:52 hnrainll 阅读(914) 评论(0) 推荐(0) 编辑
摘要: 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://phoenixtoday.blogbus.com/logs/45855234.html 最近小组里有一些关于REST API设计的讨论,有些收获,打算在这里写一下。通常来讲设计第一个版本的REST API并不难,难点在于将来你要改变了这些API,而客户那里已经有对应的客户端实现, 那么你怎么保证兼容?或者,至少,你应当让这些东西失效吧,这样客户才能知道。所以基本上就是两个问题。1,在最初设计时,如何尽量保证向后兼容?(这里不提倡过度设计噢,我们是搞敏捷的,哈哈)2,如果API发生了改变,该怎么通知已有实现?对于第一个 阅读全文
posted @ 2011-08-16 12:04 hnrainll 阅读(2278) 评论(1) 推荐(0) 编辑
摘要: 代理服务器,英文名叫Proxy Server,在日常网络中有很多用途,这里把我们所熟悉的一些作用总结和分析一下,分类说明: 一、共享网络 最常见的可能是用代理服务器共享上网,很多人不知不觉中就在用,比如通过sygate,wingate,isa,ccproxy,NT系统自带的网络共享等,可以提供企业级的文件缓存、复制和地址过滤等服务,充分利用局域网出口的有限带宽,加快内网用户的 访问速度,可以解决仅仅有一条线路一个IP,IP资源不足,带局域网很多用户上网的功能,同时可以做为一个防火墙,隔离内网与外网,并且能提供监控网络和记录传输信息的功能,加强了局域网的安全性,又便于对上网用户进行管理。 二、访 阅读全文
posted @ 2011-08-16 11:03 hnrainll 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 首先要安装这个库,其次,要把需要的协议加上,./configure --enable-smtp --enable-pop3makemake install使用curl --version 查看使用版本是否一样smtp代码实例: ################################################################################include <stdio.h> #include <curl/curl.h>size_t read_data(void *ptr, size_t size, size_t nmemb, 阅读全文
posted @ 2011-08-16 10:48 hnrainll 阅读(1714) 评论(0) 推荐(1) 编辑
摘要: larbin是一种开源的网络爬虫/网络蜘蛛,由法国的年轻人 Sébastien Ailleret独立开发。larbin目的是能够跟踪页面的url进行扩展的抓取,最后为搜索引擎提供广泛的数据来源。Larbin只是一个爬虫,也就是说larbin只抓取网页,至于如何parse的事情则由用户自己完成。另外,如何存储到数据库以及建立索引的事情 larbin也不提供。一个简单的larbin的爬虫可以每天获取500万的网页。 利用larbin,我们可以轻易的获取/确定单个网站的所有联结,甚至可以镜像一个网站;也可以用它建立url 列表群,例如针对所有的网页进行 url retrive后,进行xml 阅读全文
posted @ 2011-08-16 08:34 hnrainll 阅读(1280) 评论(0) 推荐(1) 编辑
摘要: #include<iostream>#include<string.h>using namespace std; //申明命名空间//error()函数void error(){ cout<<"/nCan not open the file."<<endl; exit(1);//退出}int main(void){ FILE *fp;//定义一个文件指针 char str[80]; cout << "Input:";//从键盘读取输入 cin.getline(str,80); if( (fp=f 阅读全文
posted @ 2011-08-12 21:55 hnrainll 阅读(595) 评论(0) 推荐(0) 编辑
摘要: 1,时间的获取:通过time()函数来获得日历时间(Calendar Time),其原型为:time_t time(time_t * timer);#include "stdafx.h"#include "time.h"#include "stdio.h"#include "stdlib.h"int main(void){struct tm t; //定义tm时间结构,用来存储时间格式的数据信息time_t t_of_day; //定义time_t时间结构t.tm_year=2006-1900;//以1900年为标 阅读全文
posted @ 2011-08-11 22:06 hnrainll 阅读(2107) 评论(0) 推荐(0) 编辑
摘要: 设置成UTF-8,可以解决中文乱码问题。设置字体,默认是10pt,可以修改成12px ,仿宋GB2312。 修改背景色、前景色让眼晴看着舒服些。Load某个配制名称,或输入新名称,然后保存,让之前的设置生效保存1、WindowsXp-》“运行”输入:regedit 打开注册表 2、 HKEY_CURRENT_USER -》Software -》 SimonTatham 3、右击“ SimonTatham ”,在弹出菜单中选择”导出“,保存成”puttyConf.reg”即完成备份。 4、还原Putty设置。直接双击”puttyConf.reg”导入注册表信息即完成还原putty设置转自:htt 阅读全文
posted @ 2011-08-11 19:08 hnrainll 阅读(1542) 评论(0) 推荐(0) 编辑
摘要: read函数只是一个通用的读文件设备的接口。是否阻塞需要由设备的属性和设定所决定。一般来说,读字符终端、网络的socket描述字,管道文件等,这些文件的缺省read都是阻塞的方式。如果是读磁盘上的文件,一般不会是阻塞方式的。但使用锁和fcntl设置取消文件O_NOBLOCK状态,也会产生阻塞的read效果。怎么样以非阻塞的方式从管道中读取数据?因为我用read函数时,如果管道没有数据就会阻塞住??? 我的代码是: char chBuff[32]; read(file_pipe[0], chBuff, 16); 如果管道没有数据我这个函数就永远不返回,请问有没有其它的方式,如果管道有数据就读取, 阅读全文
posted @ 2011-08-11 17:51 hnrainll 阅读(20289) 评论(0) 推荐(0) 编辑
摘要: 在windows下操作linux命令的小工具,非常好。偶然发现,储存资料备用。PuTTY 是一个跨平台的远程登录工具,包含了一组程序,包括:PuTTY (Telnet 和 SSH 客户端)PSCP (SCP 客户端, 命令行下通过 SSH 拷贝文件,类似于 Unix/Linux 下的 scp 命令)PSFTP (SFTP 的命令行客户端,类似于 FTP 的文件传输,只不过使用的是 SSH 的 22 端口,而非 FTP 的 21 端口,类似于 Unix/Linux 下的 sftp 命令)PuTTYtel (仅仅是一个 Telnet 客户端)Plink (命令行工具,执行远程服务器上的命令)Pag 阅读全文
posted @ 2011-08-11 17:31 hnrainll 阅读(49388) 评论(5) 推荐(6) 编辑
摘要: continue1、结束本次循环,继续下次循环,并且进行条件判断;2、不可作用于switch语句。当在switch中使用,这个continue实际是作用于其所属的循环结构;若它不属于任何一个循环,程序将因此报错!break1、结束本次循环,并停止下次循环条件判断;2、可以作用于switch语句。开关语句中,执行switch语句之后的代码。1. continuecontinue 可用于 C 提供的全部三种循环结构。continue 会致使循环跳过循环体中余下的语句,转而判断循环条件是否仍然成立,然后选择是否再次进入循环体。如果 continue 位于循环嵌套中的一个内循环,则其仅能影响该内循环的 阅读全文
posted @ 2011-08-10 14:24 hnrainll 阅读(7050) 评论(0) 推荐(0) 编辑
摘要: $ kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR213) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ26) SIGVTA 阅读全文
posted @ 2011-08-10 09:13 hnrainll 阅读(432) 评论(0) 推荐(0) 编辑
摘要: /*变参函数原理说明:va_start就是求得第一个可变参的地址.下面几个宏的作用:保是来确定可变参数的列表中每个参数的地址.实现变参函数的要点,就是想办法取得每个参数的地址.*/#include <stdio.h> #include <stdarg.h>#if 0#define va_list void*#define va_arg(arg, type) *(type*)arg; arg = (char*)arg + sizeof(type);#define va_start(arg, start) arg = (va_list)(((char*)&(star 阅读全文
posted @ 2011-08-05 14:38 hnrainll 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 在学习C语言的过程中我们可能很少会去写变参函数,印象中大学老师好像也没有提及过,但我发现变参函数的实现很巧妙,所以还是特地在此分析下变参函数的实现原理。无需标准C的支持,我们自己写代码来实现。先来看看一个实现代码:#include <stdio.h> #define va_list void*#define va_arg(arg, type) *(type*)arg; arg = (char*)arg + sizeof(type);#define va_start(arg, start) arg = (va_list)(((char*)&(start)) + sizeof( 阅读全文
posted @ 2011-08-05 12:26 hnrainll 阅读(489) 评论(0) 推荐(0) 编辑
摘要: 摘要:一直以来都觉得printf似乎是c语言库中功能最强大的函数之一,不仅因为它能格式化输出,更在于它的参数个数没有限制,要几个就给几个,来者不拒。printf这种对参数个数和参数类型的强大适应性,让人产生了对它进行探索的浓厚兴趣。 关键字:printf, 可变参数 1. 使用情形 int a =10;double b = 20.0;char *str = "Hello world";printf("begin print\n");printf("a=%d, b=%.3f, str=%s\n", a, b, str);... 从pri 阅读全文
posted @ 2011-08-05 12:25 hnrainll 阅读(12276) 评论(1) 推荐(1) 编辑
摘要: 第一:什么是可变参数int printf(const char* format, ...);看到printf的定义大家就知道了,只有一个固定的const char*参数,后面的都是不定长的参数列表了。第二:自己写一个可变参数函数1.参数形参方式,跟printf类似,第一个为固定参数,后面的用...代替;2.包含stdarg.h头文件,因为需要用到几个里面定义的宏;void va_start(va_list arg_ptr, prev_param);type va_arg(va_list arg_ptr, type);void va_end(va_list arg_ptr);va是variabl 阅读全文
posted @ 2011-08-05 12:24 hnrainll 阅读(889) 评论(0) 推荐(0) 编辑
上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 71 下一页