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

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

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


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