问题标签 [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 投票
0 回答
181 浏览

c - 调用我从信号处理程序内部使用 mq_send 或 msgsnd

在信号处理程序中调用 msgsnd() 或 mq_send() 是否安全。代码如下所示。

有两个 pthread 在阻塞模式下通过消息队列发送和接收数据。信号在 Thread2 上下文中处理。

我的疑问是我们是否会丢失数据,当我们在 Bookmark1 行中阻塞时,当信号处理程序在其间执行时,信号处理程序从例如计时器超时执行。

0 投票
2 回答
237 浏览

c - Linux 上的线程程序(Posix 线程)

我想使用这个 Pthread API 修改 Linux 操作系统上的多线程程序。

我想将该程序更改为具有2 个线程的程序,这些线程一起工作以添加一个数字。但是我不知道如何更改它,再次感谢您提供的任何帮助。对不起,因为我不善于解释。

0 投票
0 回答
82 浏览

serial-port - Azure Sphere UART 没有从串行设备读取 0x00

我正在通过串行端口从设备读取数据。我正在使用 Max3232 转换器 RS232 到 TTL。这里奇怪的是,当我使用 read 函数检索 UART 接收到的数据时,它消除了所有 0x00 字节。

我使用相同的转换器从使用 Arduino Mega 和 Raspberry PI 3 B+ 的同一设备读取数据。两者我都可以读取 0x00 值。

使用 Arduino 和 Raspberry 阅读

f7 00 00 15 10 22 00 02 28 02 00 00

f2 16 06 00 00 00 00 67 63 02 45 43

Azure Sphere 的读数相同

f7 15 10 22 02 28 02

f2 16 06 67 63 02 45 43

我错过了一些设置吗?

0 投票
1 回答
197 浏览

c - 是否有任何标准方法可以在 FreeBSD 中以编程方式获取文件或目录的创建时间

我想知道如何在 FreeBSD C API 中获取路径的创建时间?

例如在 Linux 中我们可以使用statx,因为内核 4.11,或者在 mac OSX 中我们可以使用stat64

我想知道 FreeBSD 有没有类似上面的方法?是否有任何 POSIX 标准函数/系统调用?

0 投票
2 回答
231 浏览

c - _POSIX_TIMERS 的可能值是多少?

posixoptions联机帮助页显示以下宏可用于确定主机对 posix timers API 的支持程度:

  • _POSIX_TIMERS
  • _POSIX_CPUTIME
  • _POSIX_THREAD_CPUTIME
  • _POSIX_CLOCK_SELECTION
  • _POSIX_MONOTONIC_CLOCK

在我的开发系统(基于 Ubuntu 的 Linux 发行版,使用 gcc 7.5.0)上,_POSIX_TIMERS计算结果为200809_POSIX_CPUTIMEto0_POSIX_THREAD_CPUTIMEto 0

我一直在寻找有关这些宏的更多信息,但似乎找不到所需的信息。我想知道它们是在哪里定义的(在头文件中?还是由编译器“神奇地”?),以及可能的值_POSIX_TIMERS是什么。

但是,我确实遇到了一些 C 代码,与_POSIX_TIMERS另一个以2012. 因此,显然各种不同的值必须是可能的。

0 投票
1 回答
77 浏览

c++ - Posix 结构中的声明顺序——有保证吗?

...或者,换句话说,像这样初始化系统结构是否安全:

?

0 投票
1 回答
80 浏览

c - 打开一个信号量返回 0

sem_open返回 0,perror写入 Success,信号量不打开。看过之后sem_overview,我发现问题可能出在名称开头没有斜线,添加没有帮助。没有对信号量的访问,当sem_post被称为具有分段错误的 shell 中止进程起飞时。帮助我了解问题所在。编辑:如果我重新启动系统(并清理信号量?),perror 返回“没有这样的文件或目录”,但在返回“成功”之后。

0 投票
0 回答
151 浏览

c - 一起使用 shm_open 和 mmap 有什么用?

在阅读了手册页之后,我了解到shm_openandshm_unlink基本上类似于mmapand munmap,不同之处在于它shm适用于 System V 和mmap适用于 POSIX。既然两者都可以用于共享内存,那么两者一起使用有优势吗?例如:

这段代码

将输出

如果我删除 fd 并将其替换为 -1 并添加标志MAP_ANONYMOUS

输出不变。那么为什么要使用 shm_get 呢?

谢谢

0 投票
1 回答
121 浏览

c - 有没有办法在POSIX中原子地增加一个信号量并减少另一个信号量?

有没有办法在一个(原子)操作中对不同的信号量进行多次递增/递减?

我看到在 SysV 中可以做到这一点,我想知道是否有办法使用 POSIX API 来做同样的事情。

这是我想做的(在 SysV 中):

有没有办法在 POSIX 中做同样的事情?