我们在解释老师方面遇到了很多麻烦.我们要求澄清并从他那里得到以下回复
对于execve,使用导出的变量向它发送一个环境,并创建一个内置命令来生成/ bin/bash的子shell,这样就可以使用env查看导出的变量.
(他在谈论在这里创建我们自己的环境变量.)
这与我在Stack Overflow上的以下帖子有关(阅读这篇文章将帮助您理解我想要做的事情):
我们对此非常困惑.我将再次解释我们现在要做的事情.与你的Linux shell如何做到这一点,我们需要编写自己的程序,可以设置环境变量,如PATH和USER以及用户想要定义的其他任何变量.
你将如何调用它的一个例子是(在你的程序中提示):
mysetenv dog spike
Run Code Online (Sandbox Code Playgroud)
这将创建一个看起来像"dog = spike"的环境变量
更重要的是,我们需要能够设置自己的PATH变量并将其发送到exec命令.这是一个令人困惑的部分,因为基于我们所有的问题,我们不明白我们应该做什么.
我试图使用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对我有用.
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)
但那不起作用.
我在代码中为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.
谢谢!