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

Unix/Linux
linux 操作技巧收集_
linux下如何读取使用iso 镜像文件的方法
Linux平台下文件的压缩与解压参数说明
Linux下常用压缩格式的压缩与解压方法
Linux JDK,TOMCAT安装及环境设置
Linux sleep命令使用参数
Linux cat命令参数
nfs 配置的简单例子
linux kill 关闭进程命令
linux ultrasphinx Anonymous modules have no name to be referenced by
Linux oracle 9i图文安装方法一
Linux oracle 9i图文安装教程二
Linux oracle 9i图文安装教程三
Linux oracle 9i图文安装教程四
Linux oracle 9i图文安装教程五
Linux oracle 9i图文安装教程六 完结篇
linux AS3 oracle9i 安装指南
Linux 下 (RedHat 9.0) JDK,Tomcat,MySQL的安装
RedHat 9.0下Apache+PHP+MySQL服务器安装配置
Linux 下用 Python 连接 MSSql Server 2008

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 191 ::
收藏到网摘: 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()找不到关键数据时会主动把该项数据加入数组里。返回值 找到关键数据