当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Linux C 函数参考(数据结构及算法)

Unix/Linux
如何在linux下面运行招商银行专业版
Windows和Linux系统共存 完美解决方案
Linux 和对称多处理应用程序介绍
Red Hat Linux 附加引导和内核引导选项
Linux 2.6.11内核文件IO系统调用详解
走向高手之路 Linux系统内核技术解读
菜鸟乐园 Linux系统内核代码特色一览
Linux内核和传统Unix内核的比较
内核中的物理内存分配函数kernel api
使用 Linux 系统调用的内核命令
详细解析 Linux内核的主要配置选项
内核操作 Linux2.6内核驱动移植参考
Linux内存中Swap和Buffer Cache机制
高手进阶 更换Fedora Core 6的内核
高手风范 Linux操作系统内核编码风格
Linux操作系统内核中工作队列的操作
揭开Linux系统内核调试器的神秘面纱
系统“大挪移” Linux服务器迁移大法
高手进阶 重新编译Linux操作系统的内核
Ubuntu系统关于驱动模块命令的一些使用

Unix/Linux 中的 Linux C 函数参考(数据结构及算法)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 195 ::
收藏到网摘: n/a


crypt(将密码或数据编码) 相关函数 getpass表头文件 #define _XOPEN_SOURCE#include定义函数 char * crypt (const char *key,const char * salt);函数说明 crypt()将使用Data EncryptionStandard(DES)演算法将参数key所指的字符串加以编码,key字符串长度仅取前8个字符,超过此长度的字符没有意义。参数salt为两个字符组成的字符串,由a-z、A-Z、0-9,“.”和“/”所组成,用来决定使用4096种不同内建表格的哪一个。函数执行成功后会返回指向编码过的字符串指针,参数key 所指的字符串不会有所更动。编码过的字符串长度为13个字符,前两个字符为参数salt代表的字符串。返回值 返回一个指向以NULL结尾的密码字符串。附加说明 使用GCC编译时需加-lcrypt。范例 #includemain(){char passwd[13];char *key;char slat[2];key= getpass(“Input First Password:”);slat[0]=key[0];slat[1]=key[1];strcpy(passwd,crypt(key slat));key=getpass(“Input Second Password:”);slat[0]=passwd[0];slat[1]=passwd[1];printf(“After crypt(),1st passwd :%s\n”,passwd);printf(“After crypt(),2nd passwd:%s \n”,crypt(key slat));}执行 Input First Password: /* 输入test,编码后存于passwd[ ] */Input Second Password /*输入test,密码相同编码后也会相同*/After crypt () 1st Passwd : teH0wLIpW0gyQAfter crypt () 2nd Passwd : teH0wLIpW0gyQ bsearch(二元搜索) 相关函数 qsort表头文件 #include定义函数 void *bsearch(const void *key,const void *base,size_t nmemb,size_tsize,int (*compar) (const void*,const void*));函数说明 bsearch()利用二元搜索从排序好的数组中查找数据。参数key指向欲查找的关键数据,参数base指向要被搜索的数组开头地址,参数nmemb 代表数组中的元素数量,每一元素的大小则由参数size决定,最后一项参数compar为一函数指针,这个函数用来判断两个元素之间的大小关系,若传给compar的第一个参数所指的元素数据大于第二个参数所指的元素数据则必须回传大于0 的值,两个元素数据相等则回传0。附加说明 找到关键数据则返回找到的地址,如果在数组中找不到关键数据则返回NULL。范例 #include#include#define NMEMB 5#define SIZE 10int compar(const void *a,const void *b){return (strcmp((char *)a,(char *)b));}main(){char data[50][size]=;char key[80],*base ,*offset;int i, nmemb=NMEMB,size=SIZE;while(1){printf(“>”);fgets(key,sizeof(key),stdin);key[strlen(key)-1]=’’;if(!strcmp(key,”exit”))break;if(!strcmp(key,”list”)){for(i=0;ihello /*输入hello字符串*/hello not found! /*找不到hello 字符串*/add hello to data array /*将hello字符串加入*/>.list /*列出所有数据*/freebsdlinuxsolarissunoswindowshello>hellofound: hello lfind(线性搜索) 相关函数 lsearch表头文件 #include定义函数 void *lfind (const void *key,const void *base,size_t *nmemb,size_tsize,int(* compar) (const void * ,const void *));函数说明 lfind()利用线性搜索在数组中从头至尾一项项查找数据。参数key指向欲查找的关键数据,参数base指向要被搜索的数组开头地址,参数nmemb代表数组中的元素数量,每一元素的大小则由参数size决定,最后一项参数compar为一函数指针,这个函数用来判断两个元素是否相同,若传给compar的异地个参数所指的元素数据和第二个参数所指的元素数据相同时则返回0,两个元素数据不相同则返回非0值。Lfind()与lsearch()不同点在于,当找不到关键数据时lfind()仅会返回NULL,而不会主动把该笔数据加入数组尾端。返回值 找到关键数据则返回找到的该笔元素的地址,如果在数组中找不到关键数据则返回空指针(NULL)。范例 参考lsearch()。 lsearch(线性搜索) 相关函数 lfind表头文件 #include定义函数 void *lsearch(const void * key ,const void * base ,size_t * nmemb,size_t size, int ( * compar) (const void * ,const void *));函数说明 lsearch()利用线性搜索在数组中从头至尾一项项查找数据。参数key指向欲查找的关键数据,参数base指向要被搜索的数组开头地址,参数nmemb 代表数组中的元素数量,每一元素的大小则由参数size决定,最后一项参数compar 为一函数指针,这个函数用来判断两个元素是否相同,若传给compar的第一个参数所指的元素数据和第二个参数所指的元素数据相同时则返回0,两个元素数据不相同则返回非0值。如果lsearch()找不到关键数据时会主动把该项数据加入数组里。返回值 找到关键数据