【问题标题】:How to use system calls with c++如何在 C++ 中使用系统调用
【发布时间】:2013-10-05 14:28:42
【问题描述】:

我需要做的是使用系统调用来模仿 std::cout。

我见过使用数字进行系统调用的 syscall() 函数、使用带有命令的字符串的 system() 函数和在 stackoverflow 中为某人工作但她没有列出标题的 system_call()文件或任何东西,所以它对我不起作用。

我不希望你为我编写代码,因为这是一个家庭作业,但我想知道哪些是最好的解决方法、使用哪些头文件以及使用和查看函数的一些线索进入更深入。我不知道这些函数之间的区别,但理想情况下我想找到 c++11 函数。

我只找到了关于这些函数的模糊信息,所以我无法将任何代码放在一起。

【问题讨论】:

  • 既然这是家庭作业,您没有向老师/讲师问同样的问题是否有什么特别的原因?你缺课了吗?
  • 这是用于什么平台的?
  • 我在 linux 中。特别是树莓派。我没有缺课。我只是想今天完成它。因为是星期天,不想打扰老师。我想我可以在这里发布问题并获得一些帮助,因为我没有在网上找到任何有用的东西。

标签: c++ linux c++11 system-calls cout


【解决方案1】:

系统调用(如 API)是特定于操作系统 (OS) 的。

要使用 API,您需要包含相应的头文件并链接到您系统的相应库。

同样,C++ 语言不涵盖特定于平台的功能,您需要在网络上搜索才能找到适合您平台的 API。

【讨论】:

  • 忘了说。我在linux中。特别是 raspbian。
【解决方案2】:

我需要做的是使用系统调用来模仿 std::cout。

您想在标准输出文件描述符(即文件描述符 1)上调用系统调用 write(2),即系统调用编号 4。

阅读:

$ man 2 syscall
$ man 2 syscalls
$ man 2 write

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-09
    • 2023-03-10
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多