• Linux环境-程序参数&环境变量&时间和日期


    main函数原型

    int main(int argc, char *argv)

    参数由上一级的程序调用传入,一般是shell,注意,Linux的shell一般会在设置argc和argv之前对文件名参数进行通配符拓展,而MS-DOS的shell则希望程序接受带通配符的参数,并执行自己的通配符。

    通配符只有*,?,[],{}这4种

    来自 <https://blog.csdn.net/youmatterhsp/article/details/80528761>

       

    argv[]数组,程序名也作为参数,argv[0]就是程序名

    命令行参数约定

    0.所有的命令行都应该以一个短横线(-)开始,其后包含单个字母或数字

    1.不带后续参数的选项可以下一个短横线后归并到一起,如 ls -lstr

    2.如果某个选项需要参数,则参数应该紧跟在该选项之后

       

    X/Open规范,提供了解析命令行选项的标准用法 getopt()函数

    1 #include <unistd.h>
    2 
    3 int getopt(int argc,char *const argv[],const char *optstring);
    4 extern char* optarg;
    5 extern int optint,opterr,optopt;

    P117有使用getopt()函数的例程.

    getopt_long()函数可以处理非单个字符的 含义更明确的参数 接受以 -- 开头的长参数

    环境变量&时间和日期

    20191023

    12:07

    用来控制shell脚本与其他程序行为的变量,可以使用他们来配置用户环境。

    标准环境变量包括终端类型、默认的编辑器、时区等

    C语言可以通过putenv()getenv()函数来访问环境变量

    1 #include <stdlib.h>
    2 
    3 char *getenv(const char *name);
    4 int putenv(const char *string);

    环境由一组格式为"名字-值"的字符串组成,getenv函数以给定的名字搜索环境中的一个字符串,并返回该名字相关的值。 请求变量不存在or无关联值 返回null

    设置环境仅对程序本身有效,不会反映到外部环境中,这是因为变量的值不会从子进程传递到父进程(shell)

    程序可以通过environ变量直接访问这个字符串数组获得当前的环境变量

    时间和日期

    所有的UNIX系统都使用同一个时间和日期的起点,即格林尼治时间1970年1月1日0点,其他所有的时间均是以那时经过的秒数来衡量。

    时间通过一个预定义的time_t来处理,定义在time.h头文件中'

    1 #include<time.h>
    2 time_t time(time_t *tloc);

    测算某些事情的持续时间,可以调用difftime()函数,返回值为一个double类型的数据

    double difftime(time_t time1,time_t time2);

    将时间分解为一个结构,返回世界标准时间

    返回当地时间,需要使用 struct tm *localtime(const time_t *timeval);函数

    将tm结构转换成原始数据,使用mktime()函数

    使用asctime()函数,返回日期字符串。ctime()函数用于读取当地时间,返回字符串 相当于 asctime(loacltime(timeval))

    strftime()格式化输出时间函数

       

      

  • 相关阅读:
    2019年中国高校计算机大赛
    2019年华北五省(市、自治区)及港澳台大学生计算机应用大赛
    2019年(第12届)中国大学生计算机设计大赛
    2020移动开发竞赛
    2019年华北五省(市、自治区)及港澳台大学生计算机应用大赛
    Android 开发者指南
    Android :HangUp Notification 横幅通知
    HBU E-mobile
    Android Q is Android 10
    Android Studio 3.5(Last updated 7/29/2019)
  • 原文地址:https://www.cnblogs.com/Mrwang-tju/p/12198451.html
Copyright © 2020-2023  润新知