第七节 linux c的基本应用

来源:互联网 发布:巨人网络估值 编辑:程序博客网 时间:2024/06/08 12:14

 

1.字符串操作
   1.字符测试
     1.测试是否为英文字母
       #include<ctype.h>
       int isalpha(int c)
     2.测试字符是否为数字
       int isdigit(int c)
   2.字符串初始化
     memset
     将字符串的前n个字节清零,也可以使用bzero函数
     
   3.字符串复制
     1.strcpy
     2.char *strdup(char *s);
     3.void *memcpy(void *dest, void *src, unsigned int count);
     4.memmove函数 与memcpy用法一样
     
   4.字符串比较
     比较的函数主要有strcmp,strncmp,
     strcasecmp,strncasecmp不区分大小写
     以及memcmp等。

   5.字符/字符串查找
     字符字符串查找的函数主要有index、rindex(从后向前查找)、strchr、strrchr以及strstr等
  
   6.字符串链接与分割
     实现函数为::
     strcat、strncat和strtok(分割函数)
     
2.数据交换
   1.字母大小写转换
   大写转小写
   toupper
   小写转大写
   tolower
   
   2.字符串转换
   实现字符串与整数、浮点数之间转换的函数有atoi、atol、atof、strtol、strtod以及gcvt(浮点转换字符串)

3.内存分配与释放
   1.内存空间的分配
     alloca、calloc、malloc函数都是用来动态分配内存空间。
     
   2.内存空间的释放
     释放原先分配的内存空间使用free函数。
     
   3.更改已分配的内存空间
     realloc函数用来更改已分配的内存空间,可以变大,或缩小。
     

4.时间和日期

   1.时间和日期的获取
       1.time函数
       说明:
     此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。
     如果t并非空指针的话, 此函数也会将返回值存到t指针所指的内存。

     2.gettimeofday函数
       取得目前的时间

   2.时间和日期的显示
     1.ctime函数
     转换为常用的时间格式
     
     2.gmtime函数
     该函数的功能与ctime函数类似,但转换结果以tm结构返回。
     
     3.asctime函数
     该函数的功能与ctime函数类似,转换结果也是以字符串形式返回,但它的输入参数为tm结构。
     
   3.时间的计算
     difftime函数可以计算两个时刻之间的时间差, 返回结果为秒。
     
     
    还有其他如gettimeofday获取精确时间。
   
5.其他应用
  1.命令行参数
   main函数不能被其他函数调用,所以他的参数值从操作系统命令行获取,有两个参数argc和argv,其中argc是整形变量,argv为指向字符串
   的指针数组,用来存储命令行输入的所有参数。
   
   定义函数
        int getopt(int argc,char * const argv[ ],const char * optstring);
   函数说明
         getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数optstring 则代表欲处理的选项字符串。
         此函数会返回在argv 中下一个的选项字母,此字母会对应参数optstring 中的字母。如果选项字符串里的字母后接着冒号“:”,
         则表示还有相关的参数,全域变量optarg 即会指向此额外参数。如果getopt()找不到符合的参数则会印出错信息,并将全域变量
         optopt设为“?”字符,如果不希望getopt()印出错信息,则只要将全域变量opterr设为0即可。
 
   短参数的定义
        getopt()使用optstring所指的字串作为短参数列表,象"1ac:d::"就是一个短参数列表。短参数的定义是一个'-'后面跟一个字母或数字,
        象-a, -b就是一个短参数。每个数字或字母定义一个参数。
   其中短参数在getopt定义里分为三种:
   1. 不带值的参数,它的定义即是参数本身。
   2. 必须带值的参数,它的定义是在参数本身后面再加一个冒号。
   3. 可选值的参数,它的定义是在参数本身后面加两个冒号 。
   在这里拿上面的"1ac:d::"作为样例进行说明,其中的1,a就是不带值的参数,c是必须带值的参数,d是可选值的参数。
   在实际调用中,'-1 -a -c cvalue -d', '-1 -a -c cvalue -ddvalue', '-1a -ddvalue -c cvalue'都是合法的。这里需要注意三点:
   1. 不带值的参数可以连写,象1和a是不带值的参数,它们可以-1 -a分开写,也可以-1a或-a1连写。
   2. 参数不分先后顺序,'-1a -c cvalue -ddvalue'和'-d -c cvalue -a1'的解析结果是一样的。
   3. 要注意可选值的参数的值与参数之间不能有空格,必须写成-ddvalue这样的格式,如果写成-d dvalue这样的格式就会解析错误。

   返回值
      getopt()每次调用会逐次返回命令行传入的参数。
      当没有参数的最后的一次调用时,getopt()将返回-1。
       当解析到一个不在optstring里面的参数,或者一个必选值参数不带值时,返回'?'。
      当optstring是以':'开头时,缺值参数的情况下会返回':',而不是'?' 。

  2.用户和用户组操作
    1.getuid函数
      获取当前用户进程的标示符

    2.getgid函数
      用来获取当前组的标示符
      
    3.getlogin函数
      用来获取当前用户的账户名称
      
    4.getpwent函数
      linux系统中,文件/etc/passwd中包含了所有的用户账号信息,该文件可以使用getpwent函数来读取,该函数每次从文件中读取
      一项用户数据,读取完毕后使用endpwent函数将文件关闭。
      
    5.getpwnam函数
      该函数用来读取指定的用户信息
      
    6.getutent函数
      linux系统中,文件var/run/utmp中记录着当前登录用户的信息
      读取完成后使用endutent函数将文件关闭。
      
  3.环境变量操作
    环境变量是包含系统环境信息的字符串,可以作用于用户的整个工作空间。
    1.getenv函数
      用来获取环境变量
      
    2.putenv函数
      用来更改或增加环境变量
      
    3.setenv函数
      用来更改或增加环境变量
      
      
      
    

 

 

 

 

 

 

 

0 0