问题标签 [posix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
33710 浏览

c - Win32 API 中的 Posix popen() 等价物是什么?

Win32 API 中是否有与 Linux/Unix stdio.h popen() 函数大致等效的函数?如果是这样,我在哪里可以找到它?

编辑:我需要知道这一点来修补 D 标准库中的遗漏。任何答案都必须使用标准 Win32 API,不得使用特定于 MSVC 的函数。另外,如果存在的话,我更喜欢不是非常低级的东西。

0 投票
3 回答
25870 浏览

c - POSIX C API 函数的列表在哪里?

我正在尝试找出在哪里可以找到有关 POSIX 函数的文档,但没有找到。有什么建议吗?

0 投票
5 回答
1989 浏览

c - 检测到 POSIX 系统上的日志文件已被删除或截断?

假设一个长时间运行的进程写入日志文件。假设日志文件无限期地保持打开状态。假设一个粗心的系统管理员删除了该日志文件。程序可以检测到这种情况发生了吗?

假设fstat()将报告已删除文件的链接计数为零是否安全?

在我看来,截断有点棘手。部分取决于文件描述符是否在O_APPEND模式下运行。如果日志文件没有运行O_APPEND,那么程序的日志描述符的当前写入位置不会改变,并且截断会删除前导字节,但程序会继续在“末尾”写入,留下一个幻象零的间隙字节(它们读为零,但不一定占用磁盘空间)。

如果程序以 运行O_APPEND,那么它将写入当前存在的文件末尾。观察截断的唯一方法是注意文件位置不是程序预期的位置 - 这反过来意味着明确跟踪该位置。

总的来说,我并不像删除那样担心截断,但任何想法都会受到欢迎。

0 投票
3 回答
17337 浏览

c - 如何在 C 中获取目录的大小?

是否有一个 POSIX 函数可以给我一个目录(包括所有子文件夹)的大小,大致相当于“ du -s somepath”?

0 投票
12 回答
593097 浏览

c++ - 如何使用 POSIX 在 C++ 中执行命令并获取命令的输出?

我正在寻找一种从 C++ 程序中运行命令时获取命令输出的方法。我已经研究过使用该system()功能,但这只会执行一个命令。这是我正在寻找的示例:

我需要运行任意命令并获取其输出。我查看了boost.org,但没有找到任何可以满足我需要的东西。

0 投票
2 回答
2822 浏览

linux - Linux 新手:Linux vs POSIX 手册

所以我有 Linux 程序员手册和 POSIX 程序员手册的手册页。我应该更喜欢哪个,为什么?(我正在编写一个 Linux 应用程序,没有计划移植它 AIX、BSD 等)

谢谢。

0 投票
1 回答
302 浏览

multithreading - 等效于 MSVC/Windows 中的“pthread_rwlock_timedrdlock()”和“pthread_rwlock_timedwrlock()”

在 Windows(MSVC)中遵循 POSIX 定时读取器/写入器锁的等价物是什么?

  • pthread_rwlock_timedrdlock()
  • pthread_rwlock_timedwrlock()
0 投票
5 回答
114619 浏览

c - 如何在 C 中找到当前机器的完整主机名(主机名和域信息)?

在 C 项目 (POSIX) 中,如何获取当前系统的完全限定名称?

例如,我可以通过 gethostname()从 unistd.h 获取我机器的主机名。这可能会给我machine3回报,但我实际上正在寻找machine3.somedomain.com例如。

我该如何获取这些信息?如果可能的话,我不想使用对 system() 的调用来执行此操作。

0 投票
4 回答
5153 浏览

windows - 如何在 Linux 中使用 POSIX 方法从文件中读取 Unicode-16 字符串?

我有一个包含 UNICODE-16 字符串的文件,我想将其读入 Linux 程序。这些字符串是从 Windows 的内部 WCHAR 格式原始写入的。(Windows 是否总是使用 UTF-16?例如在日文版本中)

我相信我可以使用原始读取和使用 wcstombs_l 进行转换来读取它们。但是,我不知道要使用什么语言环境。在我最新的 Ubuntu 和 Mac OS X 机器上运行“locale -a”会产生零语言环境,其名称中包含 utf-16。

有没有更好的办法?

更新:正确答案和下面的其他人帮助我使用 libiconv。这是我用来进行转换的函数。我目前将它放在一个类中,该类将转换为一行代码。

0 投票
3 回答
8711 浏览

linux - 使用 ALSA 查找流程听起来很快

目前/usr/sbin/alsaDebian 知道使用声卡的进程的方式如下:

这是相当丑陋的,取决于lsof. 我正在寻找一个没有 POSIX 解决方案lsof,也许使用 /proc。

lsof不幸的是,似乎花费的时间是上面基于代码段的两倍。您能否让它更快,以使其成为可行的替代品?

更新我将以上内容改写为:

但它似乎与我之前的片段具有相同的性能。我怀疑 grep 是罪魁祸首。

更新:我已经打开了关于该主题的Debian 错误。