我是UEFI的初学者。我正在尝试从UEFI应用程序打开文件。文件的路径是
fs1:/myfolder/myfile.txt
Run Code Online (Sandbox Code Playgroud)
代码(借助此答案):
efiStatus = bs->LocateHandleBuffer(ByProtocol,
&sfspGuid,
NULL,
&handleCount,
&handles);
for (index = 0; index < (int)handleCount; ++ index)
{
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL* fs = NULL;
efiStatus = bs->HandleProtocol(
handles[index],
&sfspGuid,
(void**)&fs);
EFI_FILE_PROTOCOL* root = NULL;
...
efiStatus = fs->OpenVolume(fs, &root);
EFI_FILE_PROTOCOL* token = NULL;
efiStatus = root->Open(
root,
&token,
L"myfolder\\myfile.txt",
EFI_FILE_MODE_READ,
EFI_FILE_READ_ONLY | EFI_FILE_HIDDEN | EFI_FILE_SYSTEM);
}
Run Code Online (Sandbox Code Playgroud)
但是使用这种方法,我只能浏览所有文件系统句柄并打开每个卷,然后尝试打开我的文件。
但我想提供文件的完整路径并在其卷中打开它。
我该如何实现?
编辑:
我尝试使用Shell API按照@Alex在注释中的建议打开文件。下面是代码。但是它挂了功能OpenFileByName。
这段代码有什么错误?(argv [1]是我的文件路径fs1:\myfile.txt)
EFI_STATUS
EFIAPI
main (
IN EFI_HANDLE ImageHandle,
IN …Run Code Online (Sandbox Code Playgroud) NSString *nameToSave = word;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSString *fromDateString=[dateFormatter stringFromDate:[NSDate date]];
[dateFormatter release];
nameToSave = [word stringByAppendingString:fromDateString];
nameToSave = [nameToSave stringByAppendingString:@".txt"];
NSLog(@"Server notes name .............>>>>>>!!!! %@",nameToSave);
Run Code Online (Sandbox Code Playgroud)
为了保存文件名我正在使用dateformatter,我的问题是在上面的代码字中对于两个文件是相同的,它在一秒钟内运行,然后两个文件名相同.所以文件覆盖..,我认为使用毫秒我可以解决我的问题,但我不知道如何以毫秒为单位获取当前时间.[秒/ 1000或任何算术运算对我没有帮助...,因为在应用算术运算后我们也得到同一个名称]
检查IOCCC中的这个混淆代码.我试图理解这一点.
int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell\
o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);}
Run Code Online (Sandbox Code Playgroud)
手段:
int i;
main()
{
for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hello, world!\n",'/'/'/'));
}
read(j,i,p)
{
write(j/p+p,i---j,i/i);
}
Run Code Online (Sandbox Code Playgroud)
请解释一下: i["]<i;++i){--i;}"]
这如何作为一个条件陈述?
我希望页脚占据页面的整个宽度,但由于某种原因,当我在 safari 中预览时它不起作用(在 Dreamweaver 中看起来不错)。怎么了?我希望将其放置在页面底部并占据整个宽度。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>
Liveweave
</title>
<!-- Place cursor after this and select a
JavaScript library from the menu above -->
<!-- Supports context-sensitive CSS3 auto-completion -->
<!-- Style starts here. Try adding new CSS tags. -->
<style type="text/css">
@charset"UTF-8";
/* CSS Document */
Html, body {
padding: 0;
margin: 0;
height: 100%;
font-family: Tahoma, Geneva, sans-serif;
background: rgb(255,255,255);
/* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' …Run Code Online (Sandbox Code Playgroud) 我已经有一个库存系统访问某个数据库上的某个表.
现在我想创建一个新的框架,在用户进入主库存系统框架之前,它将作为登录表单.
我希望它访问相同的数据库,但不同的表,(例如inventory_system_db数据库下的user_table和item_table).
如果用户登录了管理员帐户,那么他可以使用管理控件访问库存系统(例如编辑,添加,删除).
当他以普通用户身份登录时,他将能够访问库存系统但无需管理员控制.
我想知道的事情: