|
|
1
9
“kernel32.dll”也将转换为libc.so.6。由于Windows不是最低级别的POSIX,它需要额外的一层将POSIX libc调用转换为本机Win32调用。这就是msvcrt.dll的用途。Kernel32.dll包含最低级别的调用。在Linux上,这些系统调用已经是POSIX,因此不需要额外的库。 |
|
|
2
4
MSVCR.DLL与LBC相比,实际上不是6。因为第一个是VC++的专用DLL(MVCRT & Gt;微软Visual C++运行时)。 系统调用(打开、关闭、读取、写入等)也在libc中。它们只是用汇编语言编写的软件中断的简单包装。 |
|
|
3
2
编辑: 只是澄清一下——内核本身导出了许多以称为syscalls的特殊方式调用的函数;这些系统调用由实际函数包装;在Linux上,这是在libc中完成的,在Windows上是两次,一次是由ntdll(即NtCreateFile)完成的,然后是由Kernel32(CreateFileW/A)完成的。 Kernel32还提供了许多其他非系统调用的函数(即100%保持用户模式),就像libc一样。 |
|
|
4
1
我想你可能在寻找:
这是Linux内核的“虚拟库”链接。 您的内核头将为您提供API详细信息。
|
|
|
5
0
您必须在kernel32.dll中手动查找要使用的win32函数,并在linux/gnu中找到替换函数。linux使用了大量的共享库。并不是所有的操作系统都在同一个位置直接替换。有些图书馆确实负责跨平台的工作。 |
|
|
Denis · 在C、linux中同步进程 2 年前 |
|
|
ridhomblr · 如果DI>32767,VGA输出不显示 2 年前 |
|
|
dmgzh · 如何根据所使用的系统更改变量值?(Python) 2 年前 |
|
|
gitm_248 · Ubuntu安装和关闭的问题:寻求解决问题的指导 2 年前 |
|
|
Adriana · 尝试创建文件列表时出错 2 年前 |