我正在编写一个用c编写的小型unix shell。我希望它现在只做一些基本的命令。例如ls,pwd,ch
我的问题是如何设置主目录和路径目录?我想从文本文件中读取配置,以便随时轻松更改。
我将使用execv()来调用ls等unix函数。例如PATH 应该确定我的shell应该用来搜索可执行程序的目录 当用户键入命令
时由于
答案 0 :(得分:4)
它们都是您操纵e的环境变量。 G。通过setenv(3)
(运行man 3 setenv
了解详情)。变量为HOME
和PATH
。另请参阅man 7 environ
。
请注意,设置/更改环境变量只会影响当前进程以及设置/更改后从分叉的所有进程(与Windows,AFAIK不同)。< / p>
答案 1 :(得分:0)
查看函数setenv
。有关相关信息,请参阅man 3 setenv
。
答案 2 :(得分:0)
Unix已经为您提供了一个环境变量,其中包含存储系统可执行文件的所有路径。使用getenv("PATH");
检索代码中的变量每个路径都以“:”分隔,因此您需要做的就是标记化并开始搜索这些路径以查找您的命令要运行的可执行文件。在此功能中,您还应该能够搜索您选择的任何可执行路径。
您可以通过在shell提示chdir()
之前操作当前工作目录来决定要启动的目录(如您所说的“主目录”)。您还可以使用该unix函数来实现可在shell运行时使用的cd
命令。
希望这有点帮助。