C++ 如何使用syscall将int转换为char*?

C++ 如何使用syscall将int转换为char*?,c++,c,operating-system,mmap,system-calls,C++,C,Operating System,Mmap,System Calls,这是了解有关syscall的更多信息的作业的一部分 我如何在C++中使用SysCurt转换int,而不是使用SCAFTF或C++中的任何其他库函数,我想我需要使用MMAP,但是我可以找到任何关于如何使用它的文档 < P>不,你不能用SysCall来做。如果系统调用需要字符串,请在调用系统调用之前将整数转换为字符串。使用sprintf进行转换。我认为“将int转换为char*”意味着生成一个整数值的字符表示。例如,如果我们有: int i = 379; char str[256]; 您正在寻找一

这是了解有关syscall的更多信息的作业的一部分


我如何在C++中使用SysCurt转换int,而不是使用SCAFTF或C++中的任何其他库函数,我想我需要使用MMAP,但是我可以找到任何关于如何使用它的文档

< P>不,你不能用SysCall来做。如果系统调用需要字符串,请在调用系统调用之前将整数转换为字符串。使用sprintf进行转换。

我认为“将int转换为char*”意味着生成一个整数值的字符表示。例如,如果我们有:

int i = 379;
char str[256];
您正在寻找一个syscall调用,它将i作为输入,并将“379”输出到str

系统调用依赖于体系结构。因此,我需要知道您的目标是什么平台/体系结构。Syscall允许您调用“系统服务”(即一个基本例程),您可能很幸运,因为大多数平台都有打印整数和字符串的服务

那么你在哪个平台上工作

  • 以现有系统调用为例,实现将
    int
    转换为
    char*
    的系统调用

  • 引导到支持系统调用的内核或加载实现它的模块

  • 编写调用该系统调用的演示代码

  • 当内核崩溃时,调试系统调用


  • 我相信你有一个有趣的理由想这样做;我想知道它是什么。sprintf有什么问题吗?这是任务的一部分,试图理解系统调用是如何工作的,但我找不到任何关于这方面的好信息转换的结果应该是什么?给定
    int
    42
    ,您希望
    char*
    结果指向值为
    “42”
    的字符串,还是在寻找其他内容?您正在使用哪个操作系统(不同的系统有不同的系统调用)?最后,为什么要对一些可以在用户(非内核)代码中轻松完成的事情进行系统调用?我只是想知道:为什么你认为mmap会在这里帮助你?我使用的是未修改版本的ubuntuUbuntu操作系统。架构是什么?为什么他不能用系统调用呢?当你说“系统调用”时,你在说什么系统调用?