摘要: 只看代码思想 --- 真是够简单啊View Code for (ii = 0; (ii < nch) && *s1 && *s2; ii++, s1++, s2++) { res = (int) (tolower(*s1) - tolower(*s2)); if (res != 0) break; }完整的View Code int strncasecmp(const char *s1, const char *s2, size_t nch){ size_t ii; int res ... 阅读全文
posted @ 2013-05-08 20:12 stephen@liu 阅读(359) 评论(0) 推荐(0)
摘要: 有好多情况下我们会用到最大值,比如: 1、在创建一个daemon进程的时候,需要关闭所有的文件描述符, 这是POSIX.1标准下的:for(i = 0; i < sysconf(_SC_OPEN_MAX); i++) close(i); 这是XSI标准下的:View Code 1 int getdtablesize(void) 2 { 3 struct rlimit rl; 4 getrlimit(RLIMIT_NOFILE, &rl); 5 return (rl.rlim_cur); 6 } 7 8 for (i = getdtablesiz... 阅读全文
posted @ 2013-05-08 19:59 stephen@liu 阅读(399) 评论(0) 推荐(0)
摘要: 1、三伏天,禅院的草地枯黄了一大片。 “快撒点草种子吧!好难看哪!” 小和尚说。 ”等天凉了。“ 师父挥挥手:”随时!” 中秋,师父买了一包草籽,叫小和尚去播种。2、秋风起,草籽边撒、边飘。 ”不好了!好多种子都被吹飞了。“小和尚喊。 “没关系,吹走的多半是空的,撒下去也发不了芽。” 师父说:”随性!“3、撒完种子,跟着就飞来几只小鸟啄食。 ” 要命了!种子都被鸟吃了!“ 小和尚急得跳脚。 ”没关系!种子多,吃不完!“ 师父说: ”随遇! “4、半夜一阵骤雨,小和尚早晨冲进禅房: “师父!这下真完了!好多草籽被雨冲走了! ” ”冲到哪儿,就在哪儿发! “ 师父说: “... 阅读全文
posted @ 2013-05-02 19:25 stephen@liu 阅读(150) 评论(0) 推荐(0)
摘要: 如上红线部分: 前面说文件描述符标志适用于指向该 给定文件表项的任何进程中的 所有描述符,,而后面说,每个进程都有它自己的文件表项 这不是自相矛盾么?难道是fork一个子进程的时候,父进程和子进程共享一个文件表??? 阅读全文
posted @ 2013-04-28 10:28 stephen@liu 阅读(507) 评论(0) 推荐(0)
摘要: 1、常用的strcpy(拷贝) , strcmp(比较) ,strtok( 分割 ) ,strlen(字符串长度,不包含'\0') ,strcat(链接字符串),strstr(在一字符串中搜寻另一字符串) 不常用的,strcoll(根据系统环境变量LC_COLLATE来进行比较,如果为“POSIX”或者“C”,那和strcmp一样) strdup (字符串复制) strncasecmp (忽略大小比较字符串)2、用汇编语言编写的拷贝函数memccpy(void *dest,const void *src,int c,size_t n) 拷贝字符串,直到碰到字符c为止,返回des 阅读全文
posted @ 2013-04-27 19:06 stephen@liu 阅读(517) 评论(0) 推荐(0)
摘要: 1、动态链接库的原理?也就是他是怎么开始运行的 这个问题基本解决, 事实上,动态链接库产生的原因就是很多程序有相同的代码,为了防止代码的重复出现而占满硬盘,所以创造了动态链接库,这样相同的代码只有一份在硬盘,在使用的时候调入内存,大家共用,节省磁盘空间 动态链接库的本质就是写好的一些函数,给你调用,但是你看不到函数的实现,却能调用它,这就是加载器的魅力2、怎么生成.so格式的动态链接库 这个总结挺好的:(在《LINUX系统中动态链接库的创建与使用》一文中看到)一是如何让动态链接库为LINUX系统所共享,二是编译连接程序时如何做.让动态链接库为系统所共享,主要是用ldconfig管理命令... 阅读全文
posted @ 2013-04-27 19:06 stephen@liu 阅读(366) 评论(0) 推荐(0)
摘要: 20130427标准I/O的相关函数1、三个文件指针,stdin,stdout,stderr 三个文件描述符,STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO2、标准IO里面的标准输入,输出,错误重定向: FILE* freopen(const char *pathname,const char type,FILE *fp),此函数中,当fp为标准输入,或者输出时,重定向文件到标准输入输出, 此函数的意思是:在一个流中打开某文件 在linux的文件IO里面的重定向:可以先关闭所有文件描述符,然后再打开某个文件,因为open分配文件描述符是按未使用的顺序... 阅读全文
posted @ 2013-04-27 17:19 stephen@liu 阅读(252) 评论(0) 推荐(0)
摘要: 1、查看目录信息 opendir readdir stat,lstat,fstat 将目录按字母排序,alphasort,scandir 一般的用法是将alphasort作为scandir的参数,比如struct dirent **namelist; scandir("/",&namelist,0,alphasort);2、复习了一遍popen,pclose3、明天继续,仔细研究下alphasort函数 阅读全文
posted @ 2013-04-25 21:04 stephen@liu 阅读(107) 评论(0) 推荐(0)
摘要: 1、long ftell(FILE *stream)函数,一般用来得到文件大小,比如你可以这样用 fseek(fp, 0, SEEK_END); //跳到文件结尾 size = ftell(fp)+1; 先跳到文件流结尾,然后得到文件流当前位置 偏移文件首的位置是多少2、linux里面的限制,比如路径名最大能有多少个字符串,测试一些linux下面的极限值(其他系统不同,比如BSD,) long sysconf(int name); long pathconf(const char *pathname,int name); long fpathconf(int filed... 阅读全文
posted @ 2013-04-25 16:20 stephen@liu 阅读(135) 评论(0) 推荐(0)
摘要: 1、如果你在一个公司呆不久,那么很多东西你没办法看到,而且,当你的人生履历上面全是跳槽的记录,谁会要你?2、学习态度问题,确实现在压力比较大,入不敷出;但是端正学习态度,以兴趣为导向,工作为标准,努力执行;3、同事关系问题,多听,少说,多做4、要懂得推销自己;5、知道自己的缺点一定要及时改正,并记录;要写学习总结。 阅读全文
posted @ 2013-04-22 23:28 stephen@liu 阅读(120) 评论(0) 推荐(0)