问题标签 [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 回答
4714 浏览

c - POSIX system(3) 调用异步 shell 命令会立即返回吗?

例如,system("sh /mydir/some-script.sh &")

0 投票
5 回答
57567 浏览

c - 如何等待任何/所有 pthread 完成?

我只希望我的主线程在退出之前等待我的所有(p)线程完成。

由于不同的原因,线程来来去去很多,我真的不想跟踪所有这些 - 我只想知道它们什么时候都消失了。

wait() 对子进程执行此操作,当没有子进程时返回 ECHILD,但是 wait 不会(似乎可以使用)(p)线程。

我真的不想麻烦地保留每个未完成线程的列表(因为它们来来去去),然后不得不在每个线程上调用 pthread_join。

因为有一种快速而肮脏的方法来做到这一点?

0 投票
3 回答
268 浏览

c - 在 C 中重定向 posix 文件调用

我们有一个“库”(我们宁愿不更改的代码选择),它是从它可以直接访问 2 个文件的角度编写的。它直接在文件描述符上使用“open”、“read”和“seek”posix 调用。

但是,现在我们有一个不能通过标准 IO 调用访问的专有文件系统。鉴于我们不想重新编写代码,如果我们可以将 IO 调用重定向到可以用作接口的已知函数,那就太好了。

有什么方法可以更改上面使用的调用,以便可以用新的函数调用覆盖“读取”和“搜索”?

谢谢。

0 投票
6 回答
8833 浏览

c++ - 我是否需要一个外部“C”块来包含标准 POSIX C 标头?

我是否需要一个extern "C" {}块来在 C++ 程序中包含标准 C 头文件。只考虑在 C++ 中没有对应的标准 C 头文件。

例如:

0 投票
2 回答
1363 浏览

c - C PF_PACKET 链路层处理

我试图找出在以下之后存储在“缓冲区”中的数据结构:

sock=socket(PF_PACKET, SOCK_RAW, htons(ETHERTYPE_IP));

recvfrom(sock, buffer, 2048, 0, NULL, NULL);

如果它是 TCP 数据包,我希望能够深入数据结构并读取链路层、IP 层和 TCP 层。我尝试了手册页和一些头文件,但到处都是。

提前致谢。

0 投票
1 回答
2550 浏览

posix - 为什么 POSIX API 没有文件结束功能?

在 POSIX API 中,read()返回 0 表示已到达文件结尾。为什么没有一个单独的函数告诉你read()返回零——而不需要你实际调用read()


询问的原因:由于您必须调用read()才能发现它会失败,这使得文件读取算法更加复杂并且效率可能稍低,因为它们必须分配可能不需要的目标缓冲区。

我们可能想做的事...

相反,我们必须做的...


此外,这种行为似乎会传播到更高级别的 API 中,例如Cfread()feof()C 中 - 并且在如何feof()正确使用方面造成了很多混乱:

0 投票
1 回答
805 浏览

javascript - 有没有一种方法可以调用 POSIX 函数,以前缀而不是中缀方式附加/写入文件,例如“<”和“<<”?

我正在使用 Google Chrome d8 shell 版本 3.7.7 运行我为它编写的 JavaScript 应用程序,我需要在其中创建/写入文件。似乎进行 I/O 的唯一方法是使用提供的

该头文件中概述了 API:http ://code.google.com/p/v8/source/browse/trunk/src/d8.h

所以我需要的是一个可以以前缀方式调用的 POSIX 程序的名称,它将文件和字符串作为参数并将字符串写入文件。有这样的程序吗?如果没有,是否有人看到解决此问题的方法?

似乎无法使用当前 API 进行以下类型的调用,因为 < 是中缀运算符并且似乎不能用作前缀:

任何帮助将不胜感激!谢谢。

0 投票
1 回答
149 浏览

linux-kernel - 在同一个项目中使用 2 种不同的调度策略

在嵌入式项目中,我们在决定使用哪种调度策略时面临困难。对于某些要通过的测试用例,我们需要使用SCHED_OTHER,而对于其他一些测试用例,我们需要使用SCHED_RR。但是如果我们将SCHED_RR某些任务设置为休息SCHED_OTHER,则全部测试用例正在通过。这是否合法,在同一个项目中使用两种策略是否有任何额外的副作用?

0 投票
2 回答
524 浏览

unix - posix 重命名行为

如果我们尝试将文件夹重命名为包含某些文件的现有文件夹会发生什么

前任:

在文件夹 D1 中有另一个文件夹 D2 和 f1 文件,还有 D3 和 f2 文件,如果我们尝试重命名 d2-->D3

行为将如何删除现有的 d3 并尝试重命名或任何奇怪的行为

0 投票
1 回答
854 浏览

linux - 为什么 sem_t 在 64 位 linux 中是 32 字节?

64 位 linux 中的 sem_t 是 32 字节,但是使用 futex 实现,8 字节就足够了(glibc sem_post),是真的吗?如果是真的,为什么要浪费字节?

实际上,我想使用仅使用 8 字节的自定义信号量实现,因此可以使用一个信号量到一个日期条目。但我不太确定 glibc 实现中的其他字节只是填充。

只是为了我的建议,我不会在工作中使用自定义信号量。