小编jam*_*mes的帖子

了解执行和设置环境变量的要求

我们在解释老师方面遇到了很多麻烦.我们要求澄清并从他那里得到以下回复

  1. 对于execve,使用导出的变量向它发送一个环境,并创建一个内置命令来生成/ bin/bash的子shell,这样就可以使用env查看导出的变量.

    (他在谈论在这里创建我们自己的环境变量.)

  2. 是创建自己的.您可以在shell启动时复制environ并仅添加导出的变量

这与我在Stack Overflow上的以下帖子有关(阅读这篇文章将帮助您理解我想要做的事情):

使用execve的新路径来运行ls命令

我们对此非常困惑.我将再次解释我们现在要做的事情.与你的Linux shell如何做到这一点,我们需要编写自己的程序,可以设置环境变量,如PATH和USER以及用户想要定义的其他任何变量.

你将如何调用它的一个例子是(在你的程序中提示):

mysetenv dog spike
Run Code Online (Sandbox Code Playgroud)

这将创建一个看起来像"dog = spike"的环境变量

更重要的是,我们需要能够设置自己的PATH变量并将其发送到exec命令.这是一个令人困惑的部分,因为基于我们所有的问题,我们不明白我们应该做什么.

c path exec execve

12
推荐指数
2
解决办法
6万
查看次数

使用execve的新路径来运行ls命令

我试图使用execve来运行ls命令.目前我正在使用以下参数运行它:

execve(args[0], args, env_args)
//args looks like {"ls", "-l", "-a", NULL}
//env_args looks like {"PATH=/bin", "USER=me", NULL}
Run Code Online (Sandbox Code Playgroud)

我期望这样做是使用我的新env_args运行ls命令,这意味着它将在我的PATH中查找ls.但是,这段代码实际上没有做任何事情,当我运行代码时它只返回我的命令提示符而没有输出.

使用相同的args []我使用execvp并且ls工作并搜索我当前的路径.

你能告诉我我做错了什么吗?

我想要做的是编写我自己的shell程序,在那里我可以创建和导出我自己的环境,并让exec使用我在char**中定义的环境.本质上我正在编写自己的函数来操作env_args来添加和删除变量,当我调用exec时我希望能够在{"ls"," - l",NULL}上调用exec并让它看不起我的新环境名为ls的有效程序的路径变量.我希望这能解释我的工作做得更好.在这种情况下,我不认为extern environ var对我有用.

c path exec execve

3
推荐指数
1
解决办法
2万
查看次数

如何在java中初始化抽象类型的List,以便稍后我可以将子类型添加到列表中

tldr:如何创建抽象类型BankAccount列表并将具体子类型添加到列表中

在java中,我有一个名为BankAccount的类.它是一个抽象类,因为我不希望任何人使用常规的BankAccount,他们应该使用子类型SavingsAccount,CheckingAccount,VacationAccount.

我希望在客户类中拥有一个名为"帐户"的列表中的属性.在类定义中,我添加了一个属性,并没有将它初始化为任何东西.在构造函数中,我想根据用户在构造函数中指定的内容添加一个帐户,但是当我这样做时,我在调用add()时出错.

它看起来像这样

List<BankAccount> accounts;

accounts.add(new CheckingAccount() );
Run Code Online (Sandbox Code Playgroud)

这有用吗?我究竟做错了什么.我试过了

List<BankAccount> accounts = new List<BankAccount>(); 
Run Code Online (Sandbox Code Playgroud)

但那不起作用.

java collections abstract-class list

3
推荐指数
1
解决办法
8272
查看次数

如何使用Ctrl + Shift + d使用registerHotKeys函数

我在代码中为Ctrl + Shift + d设置了一个热键.我现在已经按照Ctrl + d(几乎那里......)工作,但我无法弄清楚如何让第二个修改器(Shift)工作.下面是我调用当前函数的方式,仅用于Ctrl + d

Win32.RegisterHotKey(hWndSource.Handle, add, Win32.MOD_CONTROL, Win32.VK_KEY_D);
Run Code Online (Sandbox Code Playgroud)

我想使用Win32.MOD_CONTROL和Win32.MOD_SHIFT.

谢谢!

c# winapi hotkeys

2
推荐指数
1
解决办法
882
查看次数

标签 统计

c ×2

exec ×2

execve ×2

path ×2

abstract-class ×1

c# ×1

collections ×1

hotkeys ×1

java ×1

list ×1

winapi ×1