《linux常用命令和C语言常用函数帮助文档.docx》由会员分享,可在线阅读,更多相关《linux常用命令和C语言常用函数帮助文档.docx(147页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、字符测试篇isalnum (测试字符是否为英文或数字)相大函数 isalpha, isdigit, islower, isupper 表头文件 #include 定义函数 !nt isalnum (int c)函数说明检查参数c是否为英文字母或阿拉伯数字,在标准c中相当于使用 w isalpha(c) | | isdigit (c) ” 做测试。返回值若参数c为字母或数字,则返回TRUE,否则返回NULL(0)。 附加说明此为宏定义,非真正函数。范例/找出str字符串中为英文字母或数字的字符/ #include main () char str=w 123c#FDsPe?w ;int i;fo
2、r (i=O;stri!=0;i+ )if ( isalnum(stri) printf( %c is an alphanumeric charactern” ,stri);执行 1 is an apphabetic character2 is an apphabetic character3 is an apphabetic character c is an apphabetic character F is an apphabetic character D is an apphabetic character s is an apphabetic character P is an a
3、pphabetic character e is an apphabetic characterisalpha (测试字符是否为英文字母)相关出数 isalnum, islower, isupper表头文件 #include定义函数 int isalpha (int c)函数说明检查参数c是否为英文字母,在标准c中相当于使用 uisupper (c) I | islower (c)”做测试。返回值若参数c为英文字母,则返回TRUE,否则返回NULL(0)。附加说明此为宏定义,非真正函数。范例/找出str字符串中为英文字母的字符/4include main()(char str” 123c#FD
4、sPe?” ;int i;for (i=0;stri!=0;i+)if(isalpha(stri) printf( %c is an alphanumeric characternw ,stri);执行CisanapphabeticcharacterFisanapphabeticcharacterDisanapphabeticcharactersisanapphabeticcharacterPisanapphabeticcharactereisanapphabeticcharacterisascii (测试字符是否为ASCII码字符) 相关函数iscntrl 表头文件#include 定义函数
5、 int isascii (int c);函数说明检查参数c是否为ASCII码字符,也就是判断c的范围是否在至127之 间。返回值若参数c为ASCII码字符,则返回TRUE,否则返回NULL()。 附加说明此为宏定义,非真正函数。范例/判断int i是否具有对映的ASCII码字符/#include main () ( int i;for(i=125;i130;i+) if(isascii(i)printf(%d is an ascii character:%cn”, i, i); elseprintfl %d is not an ascii charactern”, i);)执行125is a
6、n ascii character:)126is an ascii character:127is an ascii character:128 is not an ascii character129 is not an ascii character iscntrl (测试字符是否为ASCH码的控制字符)相关函数isascii表头文件 include 定义函数 int iscntrl (int c);函数说明检查参数c是否为ASCI!控制码,也就是判断c的范围是否在0到30之间。 返回值若参数c为ASCII控制码,则返回TRUE,否则返回NULL(O) 附加说明此为宏定义,非真正函数。is
7、digit (测试字符是否为阿拉伯数字)相关函数isxdigit表头文件 #include定义函数 int isdigit(int c)函数说明检查参数c是否为阿拉伯数字到9返回值若参数c为阿拉伯数字,则返回TRUE,否则返回NULL(0)。附加说明此为宏定义,非真正函数.范例/找出str字符串中为阿拉伯数字的字符/#includemain()(char str=*123#FDsPe?*;int i;for(i=0;stri!=0;i+)if(isdigit(stri) printf(%c is an digit charactern*, stri);)执行 1isandigitcharact
8、er2 isandigitcharacter3 isandigitcharacterisgraphis (测试字符是否为可打印字符)相关函数isprint表头文件 #include 定义函数 int isgraph (int c)函数说明检查参数c是否为可打印字符,若c所对映的ASCI!码可打印,且非空格字 符则返回TRUEo返回值若参数c为可打印字符,则返回TRUE,否则返回NULL(O)。附加说明此为宏定义,非真正函数。范例/判断str字符串中哪些为可打印字符/#includemain ()(char str口二a5 ;int i;for(i=O;stri! =0;i+)if(isgrap
9、h(stri) printf(*str%d is printable character:%dn, i, stri);执行str0isprintablecharacter:astrlisprintablecharacter:5str3isprintablecharacter:str4isprintablecharacter:;is lower (测试字符是否为小写字母)相关函数 isalpha, isupper表头文件 #include定义函数 int islower(int c)函数说明检查参数c是否为小写英文字母。返回值若参数c为小写英文字母,则返回TRUE,否则返回NULL(0)。附加说
10、明此为宏定义,非真正函数。范例 #includemain()(char str=*123#FDsPe?*;int i;for(i=0;stri!=0;i+)if(islower(stri) printf( %c is a lower-case charactern,stri);)执行 c is a lower-case characters is a lower-case charactere is a lower-case characterisprint (测试字符是(否为可打印字符)相关函数isgraph表头文件 #includectype. h定义函数 int isprint (int
11、 c);函数说明检查参数c是否为可打印字符,若C所对映的ASCI!码可打印,其中包含空 格字符,则返回TRUE。返回值若参数c为可打印字符,则返回TRUE,否则返回NULL()。附加说明此为宏定义,非真正函数。范例/判断str字符串中哪些为可打印字符包含空格字符/#includemain ()char str口=a5;int i;for(i=O;stri!=0;i+)if(isprint(stri) printf(str%d is printable character:%dn,i,stri);)执行 str0 is printable character:astr1 is printable
12、 character:5str2 is printable character:str3 is printable character:str4 is printable character:;isspace (测试字符是否为空格字符)相关函数isgraph表头文件 #includectype. h定义函数 int isspace(int c)函数说明检查参数c是否为空格字符,也就是判断是否为空格()、定位字符()、 CR(r)、换行(n)、垂直定位字符(v)或翻页Cf)的情况。返回值若参数c为空格字符,则返回TRUE,否则返回NULL(0)。附加说明此为宏定义,非真正函数。范例/*将字符串s
13、tr 口中内含的空格字符找出,并显示空格字符的ASCI!码/ #include main()(char str=123c # FDtsPe?n*;int i;for(i=O;stri!=0;i+) if(isspace(stri) printf(str%d is a white-space character:%dn, i, stri);)执行 str4 is a white-space character:32 str7 is a white-space character:32str10 is a white-space character:9 /* t */ str16 is a whi
14、te-space character:10 /* t */ispunct (测试字符是否为标点符号或特殊符号)相关函数 isspace, isdigit, isalpha表头文件 #inlude定义函数 !nt ispunct(int c)函数说明检查参数c是否为标点符号或特殊符号。返回TRUE也就是代表参数c为非 空格、非数字和非英文字母。返回值v若参数c为标点符号或特殊符号,则返回TRUE,否则返回NULL(0)。附加说明此为宏定义,非真正函数。范例/列出字符串str中的标点符号或特殊符号*/#include main()(char str=“123c #FDsPe?;int i;for(
15、i=0;stri!=0;i+)if(ispunct(stri) printf(%cn, stri);)执行v #?isupper (测试字符是否为大写英文字母)相关函数 isalpha, is lower表头文件 #include定义函数 int isupper(int c)函数说明检查参数c是否为大写英文字母。返回值若参数c为大写英文字母,则返回TRUE,否则返回NULL(0)。附加说明此为宏定义,非真正函数。范例/找出字符串str中为大写英文字母的字符/-include main()(char str口=”123c#FDsPe?”;int i;for(i=O;stri!=。;i+)if(i
16、supper(stri) printf(*%c is an uppercase charactern ,stri);执行F is an uppercase character D is an uppercase character P is an uppercase characterisxdigit (测试字符是否为16进制数字) 相关函数 isalnum, isdigit 表头文件 #include 定义函数 int isxdigit (int c) 函数说明检查参数c是否为16进制数字,只要c为下列其中一个情况则返回TRUEo16 进制数字:0123456789ABCDEF。返回值若参数
17、c为16进制数字,则返回TRUE,否则返回NULL(0)。 附加说明此为宏定义,非真正函数。范例/找出字符串str中为十六进制数字的字符/ include main() ( char str口=”123c#FDsPe?”; int i;for(i=0;stri!=0;i+)if (isxdigit(stri) printf(%c is a hexadecimal digitsn, stri); )执仃 lisahexadecimaldigits2 isahexadecimaldigits3 isahexadecimaldigitscisahexadecimaldigitsFisa hexade
18、cimal digits Disahexadecimaldigitseisahexadecimaldigits字符串转换篇 atof (将 字符串转 换成浮点 型数) 相关函数 atoi, atol. strtod, strtol, strtoul 表头文件#include 定义函数 double atof (const char *nptr);函数说明atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号开始做转换, 而再遇到非数字或字符串结束时(、0)结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e
19、-2。返回值返回转换后的浮点型数。附加说明atof()与使用strtod(nptr, (char*)NULL)结果相同。范例/将字符串a与字符串b转换成数字后相加/#includemain()char *a=-100.23” ;char *b= 200。2 ;float c;c=atof(a)+atof(b);printf( c二%. 2fn ,c);执行c=-98.23atoi (将字符串转换成整型数)相关函数 atof, atol, atrtod, strtol, strtoul表头文件 #include定义图数 int atoi (const char *nptr);函数说明atoi()
20、会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号开始做转换, 而再遇到非数字或字符串结束时(0)结束转换,并将结果返回。返回值返回转换后的整型数。附加说明 atoi()与使用 strtol(nptr, (char*)NULL, 10):结果相同。范例/将字符串a与字符串b转换成数字后相加/#includemian()char a二TOO” ;char b 456” ;int c;c=atoi(a)+atoi(b);printf(c二%dn,c);执行c=356atoi (将字符串转换成长整型数)相关函数 atof, atoi, strtod, strtol, strtoul
21、 表头文件 #includestdlib. h定义函数 long atol (const char *nptr);函数说明atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号开始做转换, 而再遇到非数字或字符串结束时(、0)才结束转换,并将结果返回。返回值返回转换后的长整型数。附加说明 atol()与使用 strtol(nptr, (char*)NULL, 10);结果相同。范例/将字符串a与字符串b转换成数字后相加/#includemain()char a=” 1000000000”;char b口二” 234567890”;long c;c=atol(a)+at
22、ol(b);printf( c二%dn”,c);执行 c=1234567890gcvt (将浮点型数转换为字符串,取四舍五入)相关函数 ecvt, fcvt, sprintf表头文件 #include定义函数 char *gcvt (double number, size t ndigits, char *buf);函数说明gcvt ()用来将参数number转换成ASCII码字符串,参数ndigits表示显示的位数。gcvt ()与 ecvt()和fcvt()不同的地方在于,gcvt()所转换后的字符串包含小数点或正负符号。若转换成 功,转换后的字符串会放在参数buf指针所指的空间。返回值返
23、回一字符串指针,此地址即为buf指针。附加说明范例 #includemain()(double a=123. 45;double b=-1234. 56;char *ptr;int decpt, sign;gcvt (a, 5, ptr);printf( a value二%sn” ,ptr);ptr二gcvt (b, 6, ptr);printf( b value二%sn” ,ptr);执行 a value=123. 45b value=-1234. 56strtod (将字符串转换成浮点数)相关函数 atoi, atol, strtod, strtol, strtoul表头文件 8inclu
24、de定义函数 double strtod(const char *nptr, char *endptr);函数说明strtodO会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号开始做转 换,到出现非数字或字符串结束时(、0)结束转换,并将结果返回。若endptr不为NULL,则 会将遇到不合条件而终止的nptr中的字符指针由endptr传回。参数nptr字符串可包含正负号、 小数点或E(e)来表示指数部分。如123.456或123e-2。返回值返回转换后的浮点型数。附加说明参考atof()。范例/将字符串a, b, c分别采用10, 2, 16进制转换成数字/ #inclu
25、de mian()|char a=w 1000000000;char b= 1000000000” ;char c= ffff;printf( wa=%dnw , strtod(a, NULL, 10);printf( b=%dn , strtod(b,NULL, 2);printf( Mc=%dnw ,strtod(c,NULL,16); )执行 a= 1000000000b=512c=65535strtol (将字符串转换成长整型数)相关函数 atof, atoi, atol, strtod, strtoul表头文件 #include定义函数 long int strtol (const
26、char *nptr, char *endptr, int base);函数说明strtol ()会将参数nptr字符串根据参数base来转换成长整型数。参数base范围从2至36,或 。参数base代表采用的进制方式,如base值为10则采用!0进制,若base值为!6则采用!6 进制等。当base值为0时则是采用10进制做转换,但遇到如Ox前置字符则会使用16进制做 转换。开始strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符 号开始做转换,再遇到非数字或字符串结束时(、)结束转换,并将结果返回。若参数endptr不为NULL则会将遇到不合条件而终止的npt
27、r中的字符指针由endptr返回。 返回值返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。附加说明ERANGE指定的转换字符串超出合法范围。范例/将字符串a, b, c分别采用!0, 2, 16进制转换成数字/ #include main() char a=w 1000000000; char b口二” 100000000”; char c口=ffff;printf( a二%dn,strtol(a, NULL, 10);printf( ab=%dn ,strtol(b,NULL, 2); printf( 4c=%dn , strtol (c, NULL, 16); 执行
28、 a= 1000000000 b=512 c=65535strtoul (将字符串转换成无符号长整型数)相关函数 atof, atoi, atol, strtod, strtol表头文件 #include定义函数 unsigned long int strtoul (const char *nptr, char *endptr, int base);函数说明strtoul ()会将参数nptr字符串根据参数base来转换成无符号的长整型数。参数base范围从2 至36,或。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16 则采用16进制数等。当base值为0
29、时则是采用10进制做转换,但遇到如Ox前置字符则会使 用16进制做转换。开始strtoul ()会扫描参数nptr字符串,跳过前面的空格字符串,直到遇 上数字或正负符号开始做转换,再遇到非数字或字符串结束时(、)结束转换,并将结果返 回。若参数endptr不为NULL则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。返回值返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。附加说明ERANGE指定的转换字符串超出合法范围。范例参考strtol ()toascii (将整型数转换成合法的ASCII码字符)相关函数 isascii, toupper, to lo
30、wer表头文件 #include定义函数 int toascii (int c)函数说明toascii ()会将参数c转换成7位的unsigned char值,第八位则会被清除,此字符即会被转成 ASCI!码字符。返回值将转换成功的ASCII码字符值返回。范例 #includemain()int a=217;char b;printf( abefore toascii () : a value =%d(%c)nw ,a,a);b=toasci i(a);printf( after toascii () : a value =%d(%c) nw , b, b);执行 before toascii
31、 () : a value =217()after toascii() : a value =89(Y)tolower (将大写字母转换成小写字母)相关函数 isalpha, toupper表头文件 #include定义函数 int tolower(int c);函数说明若参数c为大写字母则将该对应的小写字母返回。返回值返回转换后的小写字母,若不须转换则将参数c值返回。 附加说明范例/将S字符串内的大写字母转换成小写字母/#includemain()(char s” aBcDeFgH12345; !#$” ;int i;printf( before tolower() : %sn” ,s);f
32、or (i=0; Ksizeof (s); i+)si=tolower(si);printf( after tolower() : %snw , s);)执行 before tolower () : aBcDeFgH12345; !#$after tolower() : abcdefghl2345;!#$toupper (将小写字母转换成大写字母) 相关函数 isalpha, tolower表头文件 #include定义函数 int toupper(int c);函数说明若参数c为小写字母则将该对映的大写字母返回。返回值返回转换后的大写字母,若不须转换则将参数c值返回。附加说明范例/将s字符串
33、内的小写字母转换成大写字母/#includemain()(char s口二” aBcDeFgH12345; !#$ ;int i;printf( abefore toupper() : %snM , s);for (i=0; Ksizeof (s); i+)si=toupper(si);printf ( uafter toupper() : %sn” ,s);)执行 before toupper(): aBcDeFgH 12345;!#$after toupper(): ABCDEFGH 12345;!#$内存控制篇calloc (配置内存空间)相关函数 malloc, free, reall
34、oc, brk表头文件#include 疋义函数 void *calloc(size_t nmemb, size_t size);函数说明calloc。用来配置nmemb个相邻的内存单位,每单位的大小为size,并返回 指向第一个元素的指针。这和使用下列的方式效果相同:malloc(nmemb*size); 不过,在利用callocO配置内存时会将内存内容初始化为返回值若配置成功则返回一指针,失败则返回NULLo范例/动态配置10个struct test空间/#includestruct test int a10;char b20;main() struct test *ptr=calloc(
35、sizeof(struct test),10); free (释放原先配置的内存)相关函数 malloc, calloc realloc, brk表头文件 #include定义函数 void free(void *ptr);函数说明参数ptr为指向先前由mallocO、callocO或reallocO所返回的内存指针。调 用free。后ptr所指的内存空间便会被收回。假若参数ptr所指的内存空间已 被收回或是未知的内存地址,则调用free。可能会有无法预期的情况发生。若 参数ptr为NULL,则free()不会有任何作用。getpagesize (取得内存分页大小)相关函数sbrk表头文件#i
36、nclude unistd. h定义函数 size_t getpagesize(void);函数说明返回一分页的大小,单位为字节(byte) 此为系统的分页大小,不一定会和硬 件分页大小相同。返回值内存分页大小。附加说明在Intel x86上其返回值应为4096bytes。范例 finclude main ()printf( page size = %dn” ,getpagesize();malloc (配置内存空间)相关函数 calloc, free, realloc, brk表头文件 #includestdlib. h定义函数 void * malloc(size_t size);函数说明
37、mallocO用来配置内存空间,其大小由指定的size决定。返回值若配置成功则返回一指针,失败则返回NULLo范例 void p = malloc(1024) ; /*配置 1k 的内存/mmap (建立内存映射) 相关函数munmap. open表头文件 tfinclude include 定义函数 void *mmap(void *start, size t length, int prot, int flags, int fd, off t offsize);函数说明mmap()用来将某个文件内容映射到内存中,对该内存区域的存取即是直接对该文 件内容的读写。参数start指向欲对应的内存
38、起始地址,通常设为NULL,代表 让系统自动选定地址,对应成功后该地址会返回。参数length代表将文件中多 大的部分对应到内存。参数prot代表映射区域的保护方式有下列组合PROT EXEC映射区域可被执行PROT.READ映射区域可被读取PROT WRITE映射区域可被写入PROT_NONE映射区域不能存取参数flags会影响映射区域的各种特性MAP.FIXED如果参数start所指的地址无法成功建立映射时,则放弃映射,不对 地址做修正。通常不鼓励用此旗标。MAP_SHARED对映射区域的写入数据会复制回文件内,而且允许其他映射该文件 的进程共享。MAP.PRIVATE对映射区域的写入操作
39、会产生一个映射文件的复制,即私人的“写 入时复制(copy on write)对此区域作的任何修改都不会写回原来的文件内 容。MAP ANONYMOUS建立匿名映射。此时会忽略参数fd,不涉及文件,而且映射区域 无法和其他进程共享。MAP DENYWR1TE只允许对映射区域的写入操作,其他对文件直接写入的操作将会 被拒绝。MAP LOCKED将映射区域锁定住,这表示该区域不会被置换(swap) 在调用mmap()时必须要指定MAP_SHARED或MAP.PRIVATE。参数fd为open。返 回的文件描述词,代表欲映射到内存的文件。参数。ffset为文件映射的偏移量, 通常设置为0,代表从文件
40、最前方开始对应,offset必须是分页大小的整数倍。返回值若映射成功则返回映射区的内存起始地址,否则返回MAP.FAILED( -1),错误原 因存于errno中。错误代码EBADF参数fd不是有效的文件描述词EACCES存取权限有误。如果是MAP PRIVATE情况下文件必须可读,使用 MAP_SHARED则要有PROT_WRITE以及该文件要能写入。EINVAL 参数 start、!ength 或offset 有一个不合法。EAGAIN文件被锁住,或是有太多内存被锁住。ENOMEM内存不足。范例/利用mmap()来读取/etc/passwd文件内容/#includesys/types. h
41、#include#include#include#include main()int fd;void *start;struct stat sb;fd二open( /etc/passwd” , 0 RDONLY); /打开/etc/passwd*/ fstat (fd, &sb); /取得文件大小/start=mmap(NULL, sb. st size, PROT READ, MAP PRIVATE, fd, 0);if(start= = MAP_FA1LED) /判断是否映射成功/return;printf( %s,start);munma(start, sb. st size); /解除
42、映射/ closed(fd);执行 root : x : 0 : root : /root : /bin/bash bin : x : 1 : 1 : bin : /bin : daemon : x : 2 : 2 :daemon : /sbin adm : x : 3 : 4 : adm : /var/adm :sync : x : 5 shutdown : xmail:Ip : /var/spool/lpd :0 : sync : /sbin : bin/sync :6 : 0 : shutdown : /sbin : /sbin/shutdown:0 : halt : /sbin : /
43、sbin/halt:12 : mail : /var/spool/mail :newsuucpx :9 :13 : news : /var/spool/news :x :10 :14 : uucp : /var/spoo1/uucp :operator : x : 11 : 0 :operator : /root: games : x : 12 :100 : games :/usr/games: gopher : x : 13 : 30 : gopher : /usr/1i b/gopher-data: ftp : x : 14 : 50 : FTP User : /home/ftp:nobody : x :99: 99: Nobody : /:xfs :x :100 :101 : X Font Server : /etc/xll/fs : /bin/false gdm : x : 42 :42 : : /home/gdm: /bin/bash kids : x : 500 :500 :/home/k