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

c - pthread 回调中断用户输入

我已经编写了自己的 stop_watch 模块。这将创建一个线程并休眠几秒钟。一旦秒数过期,它将调用 main.c 中的回调函数并通知用户时间已过期。

这样用户将只有 3 秒的时间输入一个数字,而他们必须输入 5 个数字。如果时间到期,程序必须停止。

2个问题。1)如果他们在要求的时间内输入数字。我怎样才能取消线程。我正在考虑使用 thread_kill 或 thread_cancel?2)如何终止 do_while 循环?因为 scanf 在等待用户进入时会阻塞。

非常感谢您的任何建议,

我的代码如下:

顺便说一句,这个问题是关于 C99 gcc 的。

0 投票
4 回答
2249 浏览

java - 是否有用于读取 UNIX /etc/group 文件的 Java 包?

我一直在 Internet 上搜索一个 Java 包/类,它可以让我解析 UNIX /etc/group 文件。虽然从头开始写这个真的不会那么难,但我很惊讶没有找到已经存在的东西。有一个 POSIX passwd 类(参见http://www.bmsi.com/java/posix/docs/posix.Passwd.html),但我没有为 /etc/group 找到类似的类。这样的事情存在吗?

0 投票
9 回答
15059 浏览

macos - Mac OS X 上的 POSIX 信号量:sem_timedwait 替代方案

我正在尝试将使用信号量的项目(来自 linux)移植到 Mac OS X,但是某些 posix 信号量未在 Mac OS X 上实现

我在这个港口打的那个是sem_timedwait()

我对信号量了解不多,但从手册页sem_wait()看来似乎很接近sem_timedwait并且已实现

从手册页

sem_timedwait()
sem函数应锁定函数中 as 引用的信号量sem_wait()。但是,如果在
不等待另一个进程或线程
通过执行某个sem_post() 功能来解锁信号量的情况下无法锁定信号量,则应
在指定的超时到期时终止此等待

从我对信号量如何工作的有限理解来看,我认为这sem_timedwait()更安全,但我仍然应该能够使用 sem_wait()

它是否正确?如果不是我还有什么其他选择...

谢谢

0 投票
4 回答
5438 浏览

c - 如何在 POSIX 中以编程方式编写文件修改日期?

我想从 C 代码中触摸我的文件以修改它们的访问日期。这似乎不起作用:

谢谢你的帮助。

0 投票
4 回答
792 浏览

filesystems - 在 POSIX 系统上修改多个文件的安全有效的方法?

我一直在关注关于 EXT4 上的“错误”的讨论,如果使用“创建临时文件,写入临时文件,将临时文件重命名为目标文件”过程,会导致文件在崩溃中归零。POSIX 表示,除非调用 fsync(),否则您无法确定数据是否已刷新到硬盘。

显然在做:

即使使用 fsync() 也不好,因为计算机可能会在 2) 或 fsync() 期间崩溃,并且您最终会得到部分写入的文件。

通常人们认为这是非常安全的:

不幸的是,事实并非如此。为了使其在 EXT4 上安全,您需要执行以下操作:

这将是安全的,并且在崩溃时,您应该拥有新文件内容或旧的、从未归零的内容或部分内容。但是如果应用程序使用大量文件,每次写入后的 fsync() 会很慢。

所以我的问题是,如何在需要 fsync() 以确保更改已保存到磁盘的系统上有效地修改多个文件?我的意思是修改许多文件,如数千个文件。修改两个文件并在每个文件之后执行 fsync() 不会太糟糕,但是 fsync() 在修改多个文件时确实会减慢速度。

编辑:将 fsync() 关闭临时文件更改为正确顺序,增加了对编写许多许多文件的重视。

0 投票
5 回答
43705 浏览

c++ - UNIX下C++中删除文件

你们通常如何删除 Linux 操作系统上的文件?我正在考虑使用unlink函数调用,但我想知道您是否有更好的主意,因为 C++ 标准没有提及文件删除操作并且它是系统相关的。

0 投票
2 回答
514 浏览

linux - 多线程信号量

在上面的程序中,当使用 sem_post() 释放信号量时,线程函数中的 fgets 和计数函数是否有可能同时执行。而且我认为该程序未能允许第二个线程在主线程读取之前对字符进行计数再次敲击键盘。那正确吗?

0 投票
3 回答
41907 浏览

linux - 所有接口上的 UDP 广播

在具有有线和无线接口(例如 192.168.1.x 和 192.168.2.x 子网)的 Linux 系统上,我想发送一个通过所有可用接口(即通过有线和无线接口)发出的 UDP 广播)。

目前我 sendto() 到 INADDR_BROADCAST,但似乎广播仅通过其中一个接口发送(并不总是相同,后续广播可能使用另一个接口)。

有没有办法可以发送通过每个接口发出的 UDP 广播?

0 投票
4 回答
2074 浏览

networking - TCP 和 POSIX 套接字 accept() 语义

情况:服务器调用accept()。客户端向服务器发送一个 SYN。服务器获取 SYN,然后将 SYN/ACK 发送回客户端。但是,客户端现在挂起/死亡,因此它永远不会向服务器发送回 ACK。

发生什么了?accept() 是在收到 SYN 后立即返回,还是在返回客户端的 ACK 之前阻塞?如果它阻塞,它最终会超时吗?

0 投票
4 回答
762 浏览

cron - 有没有办法安排一个不在每月第三个周末运行的 cron 作业?

任何想法,任何人?