问题标签 [bsd]

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 投票
1 回答
1164 浏览

python - 使用 python select.kqueue() 检查文件是否被修改删除或扩展

嗨,我很难理解如何使用仅 BSD 的 python 模块类 select.kqueue 和 select.kevent 来设置文件写入事件的监视。

每当另一个进程写入文本文件时,我希望 python 程序做出响应。我的测试代码如下:

我不知道如何继续检查这些事件是否确实发生了。有人可以指出一个使用 kqueue 检测文件修改或任何其他事件的示例(如文件删除、文件重命名等)

0 投票
1 回答
267 浏览

c - BSD 上的 nftw 不同?

我正在尝试使用nftw以下代码获取目录树中的所有 .c 文件:

它可以在 Linux 和 Solaris 上运行,但在 PC-BSD 上它会因为不拾取任何文件而失败。我错过了什么?

0 投票
1 回答
972 浏览

logging - Freenas,rsyncd 最大日志大小

我在使用 Rsync 时遇到了一些问题,并且想读取日志文件中的错误,但是,它的上限为 32kb,这意味着大约 4 分钟,我真的需要能够至少回顾 24 小时。

例如:

如何增加最大尺寸?

0 投票
2 回答
131 浏览

c - Vfork() and more corruption

my question is on execution what will happen to parent stack?

0 投票
2 回答
1666 浏览

c - OPEN_MAX 的便携式等效项

nftw想要一个用于使用文件句柄数量的参数,并且似乎没有办法说“尽可能多”。指定 255 似乎在 Linux 上有效,但在 BSD 上失败。显然 OPEN_MAX 是 BSD 上的推荐解决方案,但我不能使用它,因为它不适用于 Linux。

是否有可以在 Linux 和 BSD 上运行的便携式等效 OPEN_MAX?

或者,是否有一个可移植的数字,某个数字足够大,不会减慢速度,可移植用于实际目的(理想情况下在 POSIX 中指定,或者至少可以在每个具有显着市场份额的类 Unix 系统上工作)?

0 投票
1 回答
581 浏览

macos - Mac OS X 上的 kqueues:奇怪的事件顺序

我使用 kqueues/kevent(2) 在单独的线程中监视文件的更改。(我监控一个 Python 文件进行重新解析)

我订阅如下:

当我使用 Vim 写入文件“/tmp/somefile.py”时,我得到两个单独的 kevent: 这些事件的标志 (event.fflags) 是:

我从来没有收到过“NOTE_WRITE”事件!这似乎与 Vim 写入这些文件的方式有关,因为如果我这样做了

我确实得到了:

事件。

奇怪,嗯?我没有检查 Vim 源代码,但它必须做一些奇怪的事情,或者它只是使用以这种方式实现的用户级函数?

我真的没想到会这样。这是一个已知问题,我只需要检查所有可能的事件,还是有一个已知的接口可以真正检查文件是否已被写入?

0 投票
1 回答
776 浏览

git - Git作为用户安装在主目录中:错误?

我正在尝试在我有一个 shell 帐户作为用户但没有 root 权限的 unix 服务器上的主目录中安装 git。我正在按照这些来源中的说明进行操作:

如何在共享主机上安装 Git

git/scm 书

和 git 源目录中的 INSTALL 文件说明,但不断得到无数重复此错误消息的列表:

只是为了澄清这是在我的主目录中,而不是在我没有 root 权限的系统上。

有什么想法或建议吗?我究竟做错了什么?

编辑:尝试按照 Greg Hewgill 的建议将命令作为 gmake 运行。

现在错误消息是:

0 投票
1 回答
636 浏览

macos - 我可以在 Mac OS X 上 fork 后调用 chdir 或 setenv 吗?

在 OS X 上,fork 的手册页这样说:

您可以在子进程中执行的操作是有限制的。为了完全安全,您应该限制自己只执行异步信号安全操作,直到调用其中一个 exec 函数。任何框架或库中的所有 API,包括全局数据符号,都应该在 fork() 之后被假定为不安全,除非明确记录为安全或异步信号安全。如果需要在子进程中使用这些框架,则必须执行。在这种情况下,执行自己是合理的。

根据手册页的页脚,这可能已经存在很长时间了:

第 4 次伯克利分发 1993 年 6 月 4 日 第 4 次伯克利分发

我原以为 chdir(2) 在 fork() 和 exec() 之间调用是安全的,但它的手册页并没有说它对于异步调用是安全的。事实上,它不安全吗?如果是这样,我真的希望在 fork() 之前更改目录吗?对我来说似乎不合理。

setenv(3) 也是如此。考虑到它调用 malloc(),我猜它可能不安全。但是没有等效的 execvp 可以让我通过环境。具体来说, execvp 搜索 PATH。我能找到的最接近的具有环境参数的等价物 execve() 不会搜索 PATH。

0 投票
5 回答
6041 浏览

c - 在运行时确定操作系统

ISO C 和 POSIX 都不提供在运行时确定底层操作系统的功能。从理论的角度来看,这并不重要,因为 C 为最常见的系统调用提供了包装器,并且从挑剔的角度来看,甚至不必有底层操作系统。

然而,在许多现实世界的场景中,比 C 愿意分享的更多地了解主机环境已被证明是有帮助的,例如,为了找出存储配置文件的位置或如何调用select(),所以:

用 C 编写的应用程序是否有一种惯用的方式来确定运行时的底层操作系统?

至少,我可以轻松地在 Linux、Windows、BSD 和 MacOS 之间做出选择吗?

我目前的猜测是检查某些文件/目录是否存在,例如C:\or /,但这种方法似乎不可靠。也许查询一系列此类来源可能有助于建立“操作系统指纹”的概念,从而提高可靠性。无论如何,我期待着你的建议。

0 投票
4 回答
5304 浏览

shell - 如何在 shell 脚本中检测 BSD 与 GNU 版本的日期

我正在编写一个需要进行一些日期字符串操作的 shell 脚本。该脚本应该在尽可能多的 *nix 变体中工作,因此我需要处理机器可能具有 BSD 或 GNU 版本日期的情况。

测试操作系统类型的最优雅的方法是什么,以便我可以发送正确的日期标志?

编辑: 澄清一下,我的目标是使用日期的相对日期计算工具,这些工具在 BSD 和 GNU 中似乎不同。

BSD 示例

GNU 示例