问题标签 [posix-api]

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 投票
2 回答
4191 浏览

c - 我如何判断信号量是否已被销毁,如果没有销毁它

我有三个POSIX?信号量和几个错误条件。信号量是全局可访问的。我如何检查它们是否在发生错误之前被销毁(或者它们是否首先被初始化)。

0 投票
1 回答
3392 浏览

c++ - 使用 popen 提取系统命令的输出

我正在使用以下代码提取系统命令的输出。我没有在 PATH 变量中为“pic”设置路径。我想存储命令的输出"which pic"并且不想在控制台上显示它。

这是我的代码:

但它在控制台中显示以下输出:

0 投票
0 回答
2317 浏览

c - 通过描述符获取文件的引用计数值(文件使用的计数器值)?

在Linux中,是否可以使用非内核API通过描述符获取指定文件的引用计数值(使用文件的计数器值)?

0 投票
1 回答
7619 浏览

linux - 消息队列内容存储在哪里?

在使用 POSIX 消息队列时,我注意到在文件系统上创建了一些文件,其名称与我创建队列的名称相同。我的问题:

Q1。消息队列是否在硬盘而不是 RAM 上排队消息?

Q2。如果是这样,由于涉及 HardDisk ,这不应该在实施中非常缓慢吗?


编辑:

我在《Linux 编程接口》一书中读到了这一点:

在 Linux 上,POSIX 消息队列实现为虚拟文件系统中的 i 节点,消息队列描述符和打开消息队列描述分别实现为文件描述符和打开文件描述。但是,这些是 SUSv3 不需要的实现细节,并且在其他一些 UNIX 实现中不成立。

即使是VFS,它仍然是存储在硬盘上的,对吧?

考虑到这些信息,现在有人可以评论第二个问题吗?(和/或第一个,如果还有更多要添加的)

0 投票
1 回答
1491 浏览

python - 如何为我在 pty 下运行的进程设置终端前台进程组?

我编写了一个简单的包装脚本,用于在命令失败时重复命令retry.py。但是,当我想查看子命令的输出时,我不得不使用一些 pty 技巧。这对于像 rsync 这样的程序可以正常工作,但是像 scp 这样的其他程序应用额外的测试来显示他们的进度表等东西。

scp 代码有一个广泛的测试:

当我通过包装脚本运行时失败了。正如您在我的简单 tty_test.c 测试用例中看到的那样:

和:

我尝试使用 tcsetpgrp(),它最终作为 pty fd 上的 IOCTL,但这会导致 ptys 出现 -EINVAL。如果可能的话,我宁愿继续使用 Python 子进程机制,或者是否需要手动 fork/execve'ing?

0 投票
1 回答
6345 浏览

c - 将 Unix 移植到 Windows - pwd.h 的使用

我正在尝试使用 MinGW 编译libUnihan代码,但遇到了需要移植的函数。该函数的目的是获得规范的路径表示。它使用pwd.h(这是 POSIX,而 MinGW 不是),因此它可以通过检索passwd包含pw_dir. 我确实在这里找到了一些信息,并且这里找到了一个端口,但我仍然完全不知道如何处理这个问题。使用 MinGW,我仍然有一个由 表示并位于的主目录,但由于它不是 POSIX,我不必帮助我找到这个主目录的位置。realpath ~/home/natepwd.h

问:如何移植以下功能以与 MinGW 正常工作?

0 投票
2 回答
18359 浏览

linux - SIGKILL 信号处理

如果一个 linux 进程正在等待 I/O(即它处于SLEEP状态)并且SIGKILL针对它发出了一个信号,那么在终止(STOPPED状态)时它会通过RUNNING还是READY状态?

换句话说,对于一个处理系统中断的进程,例如由 生成的中断,SIGKILL是否需要通过RUNNINGREADYstate ?

知道在正常情况下一个进程可以处理来自内核的中断,并且知道SIGKILL杀死一个无响应的信号的目的非常矛盾,我怀疑对被杀死的进程给予了多少控制,如果有的话。

0 投票
2 回答
94 浏览

c - 如果我在循环中创建线程,则不会执行前 2 个线程

我在我的 Windows 7 机器中使用 MINGW 进行 POSIX 线程编码。

考虑以下简单代码:

上面的程序在我的系统中执行时显示以下输出:

这个程序应该产生 5 个线程。但它只创建了 2 个线程。前 2 行和最后 2 行表明即将调用 pthread_create() 例程。而且由于“rc”变量不是“1”,因此在线程创建中毫无疑问会出现任何错误,否则它会命中“if(rc)”部分。

那么错误在哪里?或者它与我的 Windows 机器有关。

0 投票
1 回答
546 浏览

c - 使用库函数存储值时结构中的变量损坏

我正在尝试编写一个使用 linux 看门狗驱动程序 ping 看门狗设备的服务。在名为“LoadConfigurationFile”的函数中,我传递了一个指向上面定义的结构的指针。然后,该函数通过库调用(libconfig)获取一个字符串并将其存储在结构中变量的地址中。但是,当我访问变量 'printf("%s\n", options.devicepath);return 1;' 而不是按预期打印配置文件的内容:“/dev/watchdog”,程序显示“�/watchdog”。

/etc/watchdogd.cfg:

看门狗设备 = "/dev/看门狗"

0 投票
2 回答
922 浏览

c++ - 如何在 QNX 中只执行一次“top”(c++ 编程)

我正在尝试为 QNX 编写简单的应用程序。我安装了 qnx momentics ide,将其连接到 QNX 虚拟机,并尝试执行“top”命令

而且我正在获得并获得结果,直到我在 QNX 虚拟机中手动终止“顶级”进程。但我只需要1次。有任何想法吗 ?