linux - 使用 G++ 在 Linux 中编写 ping 程序时从哪里开始

标签 linux g++ gedit

背景: 我习惯于使用 Windows 并使用 IDE 来创建项目,例如 Visual Studios。但我现在的任务是使用 linux、Gedit 和 G++,而且我从来没有任何经验。

任务 我正在尝试编写一个程序来 ping 网络上的设备并收集一些相关信息。我需要在不使用任何 IDE 的情况下完成此操作,最终它必须是一段在盒子内使用的独立代码。

我认为我需要做的事情 我想我需要找到一个具有相关功能的库来设置套接字和所有其他细节。但除此之外我不知道该去哪里。

请有人教教我,我感觉像一条离开水的鱼。我从哪里开始:(

最佳答案

我相信ping网络上的设备你的意思是ICMP ,另见icmp(7) .

理解如何在 Linux 上执行此操作的明显方法是利用它由 free software 组成的优势。并获取与 ping 命令相关的源代码(在 Debian 和 Ubuntu 上的 inetutils-ping 包中)。另外,您可以strace一些ping命令(要了解相关的系统调用,另请参阅 syscalls(2)Advanced Linux Programming 书)。

我强烈建议养成编译、研究和改进自由软件的习惯。

您还可以使用libping图书馆;您可能需要 root 权限。

有关 Linux 上 C 和 C++ 开发的提示,请参阅 this answer .

关于linux - 使用 G++ 在 Linux 中编写 ping 程序时从哪里开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18744713/

相关文章:

c++ - 如何在 Linux 上使用 Boost.Filesystem?

syntax-highlighting - 对 gedit 语法荧光笔使用非默认颜色模式

bash - grepping 顶部输出时出现未知符号条目

linux - Amazon EC2 实例可用磁盘空间差异

linux - 我如何使用 perl cd 进入一个目录?

c++ - 无法在 OSX 上运行已编译的 C++ 可执行文件,可在 Debian 上运行

c++ - ref 限定符在 gcc4.7.2 和 vc10 中给出错误

C++输出格式问题

c++ - Linux 进程可以拥有的最小进程 ID 是多少?

linux - 如果所有条件成功,如何在 bash 中返回 true ?