- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前我正在使用 efi API 进行编程。
如何在 efi 编程中使用?我想知道如何在efi中编写argv和argc。
到目前为止编写的c代码:
#include <stdio.h>
int main(int argc,char *argv[])
{
int i;
printf("Program name is %s \n",argv[0]);
if (argc <2)
printf("argument is no exist \n");
else
for (i=0;i<argc;i++)
printf ("argv[%d] = %s \n",i,argv[i]);
}
最佳答案
argc
、argv
和 main
是标准库概念,不会直接转换为 UEFI 应用程序。
一般而言:
无论哪种情况,当应用程序启动时,其入口点都只会传递一个指向 UEFI 系统表的指针和一个图像句柄,提供有关如何调用当前图像的信息的链接.
纯 UEFI 应用程序仅在其镜像句柄上安装 EFI_LOADED_IMAGE_PROTOCOL
。 UEFI Shell 应用程序还具有 EFI_SHELL_PARAMETERS_PROTOCOL
。
EFI_SHELL_PARAMETERS_PROTOCOL
使您可以访问 argc/argv 构造。如果没有这个,您就只能手动解析 EFI_LOADED_IMAGE_PROTOCOL.LoadOptions
。
您可以在UEFI 规范和UEFI Shell 规范中找到这些协议(protocol)的详细信息,from the UEFI Forum website .
当然,像 gnu-efi(也许还有 VisualUefi)这样的抽象框架可能会隐藏底层机制,或者提供获取它们的替代方法。`
关于c - 如何在 efi shell 中使用 "argc"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43114662/
我正在将 HP-Unix 下的大量 Oracle Pro*C 代码迁移到 Linux 环境。 程序中只定义了这样一个main方法: main _2a((argc,argv), int argc, ch
我正在使用库中的一个函数,该函数调用主程序中的 (argc,argv) 命令行函数直接传递给它;但是,我只想将一些参数传递给它,其余的在主代码中评估而不是函数。以下是带有评估参数的主要代码示例。 in
我在SO里游荡,看到了this question .然后我开始怀疑我是否可以溢出 argc。 标准规定 argv[argc] 必须是空指针,但如果 argc 溢出,则为 false。 (我 wrote
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
出于某种原因,如果我写“a+bi * c+di”而不是“a+bi + c+di”,我的 argc 参数从 4 更改为 6,但我不知道为什么。发生了什么事以及如何解决? 谢谢 #include #in
我有以下代码: void parse(char *commandLine) { int rc = 0; int argc = 0; char *cmdLine; cha
这是此问题的后续问题:Minimal example of Python interpreter embedding segfaults . 当我这样编译程序时: gcc -fno-diagnosti
根据this paper 和一些 stackoverflow 帖子,argc 在堆栈的顶部,argv 在它下面。我已经尝试了大约 3-4 种不同的方法: 将其弹出到初始化变量 (.data) - 通过
这个问题在这里已经有了答案: OpenCV argc and argv confusion (1 个回答) 关闭 9 年前。 我不明白,OpenCV 中用于加载图像的代码的功能是什么。 if(arg
我的教授和几个学生正在争论 argv 是否以 null 终止。我的 friend 写了一个小程序,它打印出 null 但另一个 child 说他可能只是在读入空白内存。有人可以解决这个讨论吗? 最佳答
所以我进行了 PHPUnit 测试,并在一个函数中找到了这段代码。 global $argv, $argc; echo $argc; print_r($argv); 我明白这些变量代表什么(从命令行传
我编写了一个打印输入的代码: int main(int argc, char *argv[]) { printf("%c", *argv[1]); return 0; } 当我输入
我将一个 main(int argc, char *argv[]) 函数重命名为普通子函数,例如 a(int argc, char *argv[]);并在我的 main() 中调用 a() 函数。然后
int main( const int argc , const char[] const argv) 如Effective C++ Item#3 指出“尽可能使用 const”,我开始思考“为什么不
我知道 argc 计算参数的数量,argv 接受参数,但它们是我可以确定我的参数是否来自 argv 以某种格式输入,如括号内和非括号内。比如./a.out "Hello Word"和./a.out H
我是 C++ 的新手,我正在尝试了解它的工作原理。所以我有下一个代码: int _tmain(int argc, _TCHAR* argv[]) { std::wcin.get();//for con
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我正在尝试查找 C++ 程序中的段错误。我注意到在发生段错误时 argc 已被修改为非常大的数字。该数字恰好是我的应用程序地址空间中的一个地址。这让我相信有什么东西正在破坏我的主堆栈框架。问题是,如何
为什么会出现以下情况: #include int main(int argc, char *argv[]) { char array[3] = {'1', '2', '3'};
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我是一名优秀的程序员,十分优秀!