对于有缺陷、内存泄漏的 POSIX API,我们该怎么办?
免责声明:这是一个分配,但分配并不要求我们消除内存泄漏。我只是对这个有保留。 考虑以下方法: //Prints the current user ID to the console. voi…
如何使用 putenv 系统调用来维护内存?
POSIX 系统调用 putenv 声明在调用 putenv 后,调用者无法释放分配的内存字符串。因此,您不能使用自动变量调用 putenv。 示例: #include <cstdlib…
修改_ldt在哪里?
我正在寻找 modify_ldt 函数(或 < code>syscall) 在 ubuntu 上,但我在任何地方都找不到它的声明。它不在 sys/types.h 中(如手册页所示),也不…
如何使用lseek读取文件的最后一个字符
我正在尝试使用 lseek 以相反的顺序读取文件中的字符。 到目前为止,我已经: int finished = 1 char temp[1] while (finished > 0) { lseek(fileID…
当启动系统调用时,用户模式的ss和esp是如何保存的,例如在linux中?
我知道用户模式 ss/esp 应该保存到内核模式堆栈中以供以后恢复。 问题是,要定位内核模式堆栈,必须首先向 ss/esp 加载相应的内核模式值。现在在…
execve() 和 fork() 的源代码
Closed. This question is seeking recommendations for software libraries, tutorials, tools, books, or other off-site resources. It does not …
C++ Linux getpeername IP 系列
在我的 Linux C++ 应用程序中,我使用 getpeername 来获取对等 IP。 我的问题是:当我在我的机器上启用 IPv6 时,我从对等方获得的 IP 属于 IF_INET6 …
如何嵌入内联汇编来调用 sys_unlink?
我尝试使用内联汇编调用 sys_unlink,如下所示: int sys_unlink(const char *filename) { int ret __asm__("int $0x80" : "=a"(ret) : "a"(10), "b"(…
是否有任何远程跨平台方式来执行外部进程?
我正在寻找有关如何执行跨平台流程的建议。 我已经编写了我的应用程序的 Java 和 Ruby 实现,但它不是特定于语言的问题,而是特定于平台的问题。 Ubun…
Linux 系统调用 getname info 返回 EAI_AGAIN
在我的 C++ 应用程序中,我使用 getnameinfo 并返回 EAI_AGAIN - 是什么导致了此错误? struct sockaddr_storage ss socklen_t salen = sizeof(ss) st…
linux 系统调用 getpeername c++
在我的 C++ 应用程序中,我使用 getpeername 系统调用,它在 var sa 中返回 0.0.0.0。 errno 中没有错误,返回代码为 0。 代码如下: int GetSock(int…
Linux 系统调用 getifaddr c++
在我的 C++ 应用程序中,我编写了以下代码: struct ifaddrs *ifap if (0 != getifaddrs(&ifap)) { error = errno return -1 } addresses.clear() …
Linux系统调用:getaddrinfo返回-2
我正在使用系统调用 getaddrinfo,它返回 -2。我尝试知道这个错误是什么,并发现这是“名称或服务未知”。 名称 - 这是我的主机名,我确信它是已知的…
一些 Linux 程序中奇怪的描述符关闭
在跟踪一些 Linux 守护进程(例如 sendmail)时,我注意到其中一些守护进程会在开始时对多个描述符(通常范围从 3 到 255)调用 close()。这是故意这…