本文共 1729 字,大约阅读时间需要 5 分钟。
在编写C语言程序时,我们首先接触的重要概念是一个函数,通常是main
函数。然而,你可能没有注意到,main
函数其实可以接收一些参数。如果你曾经写过别人的函数,那么在传递参数方面你应该也不陌生,那么main
函数同样可以接收参数,只是通常我们不经常使用。
####.Argc和ARGV
在Linux中,main
函数可以接收两个主要的参数——argc
和argv
。argc
是一个整数类型的变量,表示接收到的参数个数。而argv
是一个字符指针数组,存储了每个参数的具体值。ARGV
中的每一个元素都是一个字符串,如果在终端输入了一些选项,它们会被拆分成ARGV
数组中的各个元素。
例如,当你在终端输入./myproc -a -b 123
时,argc
会等于4,而argv
会是一个包含"myproc"
, "-a"
, "-b"
, "123"
的数组。通过遍历argv
数组,你可以逐个检查用户输入的参数。
在Linux中,环境变量是一个非常重要的概念。环境变量可以配置程序运行所需的路径、自定义变量等信息。比如,曾经你在安装Java时可能遇到过环境变量的问题,Linux同样有环境变量的概念。
./
?你可能已经注意到,当你运行自定义编写的程序时,需要在程序名之前添加./
,例如./myproc
。这与环境变量密切相关。比如,当你在终端中输入ls
或pwd
时,不需要添加./
,因为这些命令已经被预先配置好了路径,而路径信息是通过环境变量来存储的。
要查看所有环境变量,你可以使用env
命令。例如:
$ env
这将显示你目前登录时所拥有的所有环境变量。如PATH
、HOME
等,每一个环境变量都有一定的作用。
环境变量可以通过不同的方式获取。首先,getenv
函数可以用来编程获取环境变量的值。例如:
#includechar *path = getenv("PATH");
char *env[]
在编程中,除了通过getenv
获取环境变量,你还可以通过main
函数的第三个参数char *env[]
来获取所有环境变量。这个参数是全局指针,称为environ
。
environ
如果你不想通过main
函数来获取环境变量,你可以直接使用全局指针environ
。environ
指向一个字符指针数组,这个数组包含所有环境变量及其值。
我们可以通过修改配置文件来配置环境变量。比如,~/.bashrc
文件是bash shell配置文件之一,常用于定制用户的环境变量。你可以在这个文件中添加或修改环境变量。
例如,为了避免每次运行程序都需要添加./
,你可以将程序的路径添加到PATH
环境变量中。将以下内容添加到.bashrc
文件中:
export PATH=$PATH:"/path/to/your/programs"
export
导入环境变量在shell中,你可以使用export
命令将本地变量导入环境变量中。例如:
$ export MY_PATH=/my/own/program/path
此时,你的MY_PATH
环境变量就会被添加到全局环境变量中。其他程序就可以通过MY_PATH
来访问这个路径。
在修改了路径并导入环境变量后,如果你重新登录系统,之前的环境变量会重新加载配置文件中的内容。因此,为了使环境变量持久,你需要将其添加到配置文件中,而不是仅仅在终端中输入命令。
unset
和set
命令unset
命令可以用来取消一个环境变量。例如:
$ unset MY_PATH
set
命令则可以用来查看和修改环境变量。例如:
$ set
此时,set
会显示所有当前有效的环境变量和本地变量。
环境变量在程序运行中起着至关重要的作用。理解环境变量的使用方式,对于配置和优化程序运行环境至关重要。如果你的程序路径没有添加到环境变量中,那么通常需要在程序名之前添加./
以指示当前目录。通过合理配置环境变量,你可以简化程序执行时的路径搜索过程,提高程序的便捷性。
转载地址:http://xkzfk.baihongyu.com/