zoukankan      html  css  js  c++  java
  • 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()格式化输出时间函数

       

      

  • 相关阅读:
    痛苦之旅——安装Eric4
    如何把自己写的python程序给别人用
    (转)史上最好的Python线程指南
    (转)python编码问题
    Beautiful Soup的一些中文资料
    oracle监听配置
    redhat6.5安装oracle 11g
    《深入浅出MFC》– Document-View深入探讨
    CAS解扰小结
    ts包、表、子表、section的关系
  • 原文地址:https://www.cnblogs.com/Mrwang-tju/p/12198451.html
Copyright © 2011-2022 走看看