问题标签 [os-agnostic]

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 回答
39 浏览

python - 如何编写与系统无关的 Python 守护程序/服务?

由于python-daemon仅限于 *nix 系统,编写一个可以以 Pythonic 方式同时充当 *nix 和 Windows 服务的 python 程序的最简单方法是什么?

0 投票
1 回答
3442 浏览

java - 获取任何给定路径的 FileStore 对象

编辑:我认识到 FileSystem.getDefault() 会给我我在原始问题陈述中寻找的东西。我正在尝试使用 FileSystem.getFileSystem(URI) 来获取任何给定路径的 FileSystem。

我正在尝试开发一些代码,这些代码将为我提供给定路径的 java.nio.file.FileSystem 对象。

这是一些非常简化的示例代码,可以更好地了解正在尝试的内容:

执行时,最后一行代码会抛出异常:

当我对分隔符变量进行小更新时:

我从同一个地方收到一条不同的错误消息:

在分隔符中添加额外的“/”字符只会让我再次收到第一条错误消息。

我究竟做错了什么?

0 投票
1 回答
157 浏览

io - 文件系统顺序写入的一致性保证

我的程序(只有 1 个进程和 1 个线程)使用普通的旧写入系统调用将 n 个连续的数据块顺序写入 HDD(常规类型的 HDD)上的文件。这就像某种仅附加的日志文件。

在系统崩溃(电源故障,而不是 HDD 故障)后,我回读并验证 chunks[i] (0 < i < n) 已完全写入磁盘(通过检查长度)。可能是块的内容校验和不正确,但整个块[i]仍然稳定地位于磁盘表面。

在 chunks[i] 完全写下之前假设所有其他块对我来说是否安全?还是存在一个(或许多)块[j](0 < j < i)部分(或根本不)写入磁盘?我知道随机写入可以重新排序以提高磁盘吞吐量,但顺序写入也可以重新排序吗?

0 投票
2 回答
4696 浏览

stack - 如何增加 Rust 库可用的堆栈大小?

我正在玩 lambda 演算,并希望有更多的堆栈空间来构建和计算(非常)长的函数链。有没有办法为 crate 增加它,类似于增加递归限制(#![recursion_limit = "100"])?

crate 是一个库,我希望它能够执行堆栈密集型操作,而不管目标操作系统如何。

0 投票
1 回答
1904 浏览

rust - 如何访问当前平台的文件路径分隔符?

在 Rust 中是否有任何可用的选项来获取特定于平台的文件分隔符?

可以有不同的平台特定分隔符:

我看起来像以下内容:

那么它的用法可能如下:

File::separator()Rust 中有吗?

0 投票
1 回答
192 浏览

makefile - 一个项目可以同时支持 Autotools 和 Cmake 吗?

我碰巧认为(但也许是一个神话)Cmake 比 Autotools 更容易支持微软。

同时,我确信 Autotools 在涉及重要的UNIX 衍生产品(如 macOS 和最流行的 Linux 发行版)时甚至比 Cmake 更简单。

如果我不能选择怎么办?

一个项目可以同时支持 AutotoolsCmake吗?

奖励:一个项目可以同时支持 AutotoolsCmake甚至简单的 Make吗?

“同时”是指理想情​​况下,从尝试一个构建系统到另一个构建系统时,不一定要运行干净的脚本。但如果有必要,我想这将是一个合理的配置。

最后,你知道一个同时使用 Autotools 和 Cmake 的示例项目吗?一个同时使用 Autotools、Cmake 和简单的 Make 的工具?

0 投票
1 回答
53 浏览

java - 在 C 和 C++ 中获取与操作系统无关的路径的 Paths.get("abc/def.jpg") 的等价物是什么?

我想在 Linux 和 Windows 中编写和重用相同的代码,尤其是路径常量。

当我在 Linux 中为 Windows 交叉编译时,上面的代码运行良好。

但是,我不得不将代码更改为fopen(base+"subfolder\\abc.bin","wb")直接在 Windows 中编译。

现在我已经向软件添加了许多依赖项,如果我交叉编译我的软件需要交叉编译,我不想这样做,所以,我在 Windows 和 Linux 版本的软件中都使用预编译的二进制文件。

现在,我面临的问题是,如果我想在 Linux 中编译,我必须更改我不想做的路径,因为我必须维护软件的两个不同分支。有没有一种方法,类似于 Java 使用Paths.get("abcd/def/hij.bin").toString(). 我不只是要求一个系统调用,一个识别底层操作系统并相应地更改路径字符串的自定义函数会做。

我需要 C 和 C++。

0 投票
2 回答
58 浏览

python - 日志记录:如何设置日志文件的换行符?

我在WindowsLinux上都使用Python 3.7+登录,但行尾取决于平台。

虽然您可以在读取或写入文件时设置换行符,但显然您不能在设置 a 时设置logging.FileHandler

https://docs.python.org/3/library/logging.handlers.html#filehandler

类似的事情logging.FileHandler(newline = '\n')会做,如io.open(newline = '\n')

https://docs.python.org/3/library/io.html?highlight=file#io.open(读取或写入文件)
https://docs.python.org/3/library/io.html?highlight =file#io.TextIOWrappernewline在这里解释)

也许有一种方法可以确保在WindowsLinux上登录时使用相同的行结尾,但我还没有找到。

问候。