c - Windows 程序员转向 Linux - 编码约定

标签 c linux windows winapi clib

我长期以来一直在进行 Windows 开发,主要是 WinApi(和 .Net)。

我已经开始学习基本的 Linux,我对其中的差异有一些疑问:

  1. 在 Windows 中我几乎没有使用过 C 标准库。

    如果我需要 API,我会搜索 MSDN 并找到合适的库\函数。

    从表面上看,在 Linux 中,C 标准库就是一切。

    我见过的所有代码示例都使用了标准库(而不是使用一些 Linux 内部函数,如 Linux“CreateFile”)。

    这真的是编写“正确的”Linux 代码的方式吗?使用 C 标准库?

    如果我想读取一个文件,或者分配内存都是fopen\malloc该走的路吗?

  2. 如果我的第一个问题的答案是肯定的(我猜会是)

    与强大的 WinApi 相比,C 标准库显得无能为力。

    假设我希望获取正在运行的进程的列表 (CreateToolhelp32Snapshot) 或创建线程或进程 (CreateThread\CreateProcess),我应该在 Linux 中如何执行此操作?

  3. 文档。

    在 Windows 中,我需要的一切都可以在 MSDN 中找到。

    如果我有“我该怎么办”的问题(如上面的问题)我应该去哪里?

    我的主要文档来源在哪里。

非常感谢, 迈克尔。

最佳答案

也许您忘记了标准 C 库不是特定于环境的,它指定了所有可以运行 C 程序的系统之间的最小公分母功能,而 C 甚至可以在不运行 C 程序的系统上运行流程。

如果您想要一个提供一致的通用 GUI/多线程/等的 API。 API,选择一个看起来可能的 GUI/多线程/等等。 API。 You might start with Qt ,它非常全面,可以在许多系统上生成美观、近乎原生的 UI。

指出这一点通常被认为是不礼貌的,但大多数公开提出的问题都是由缺乏纪律性甚至无法进行简单研究的人提出的。一旦人们能够做到这一点,他们就不需要问太多,这就是为什么你所看到的如此……微不足道。你已经过去了。 For more options, you could start here .

有关更多通用工具,the top hita search for important linux tools可能会有所帮助。

关于c - Windows 程序员转向 Linux - 编码约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24019756/

相关文章:

windows - windows .BAT错误系统找不到指定的路径

arrays - 通过引用函数传递二维数组

Python GTK 3+ 控制关闭窗口

python - 如何在 Linux 上使用 Python 导出

linux - 按名称杀死正在运行的进程

.net - 对于 Windows 窗体,PostMessage 与 self 的等价物是什么?

windows - 一段时间后收不到消息

c - fseek() 和 ftell() 在循环中失败

c - 如何处理来自 clang 编译器的警告?

c - C 中的“fopen”无法在 Unix 上打开当前目录中的现有文件