问题标签 [portability]

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 投票
4 回答
2189 浏览

sql - SQL 可移植性有多重要?

在我看来,从个人经验和 SO 问题和答案来看,SQL 实现差异很大。SQL 问题的首要问题之一是:您使用的是什么 dbms?

在大多数情况下,使用 SQL 有多种方法可以构建给定的查询,即使使用相同的方言也是如此。但我发现有趣的是,各种方法的相对可移植性经常没有被讨论,也没有被高度重视。

但即使不考虑任何给定应用程序可能会或不会被转换的可能性,我认为我们更希望我们的技能、习惯和模式尽可能便携。

在您使用 SQL 的过程中,您对标准 SQL 语法的偏好程度如何?你如何积极地避免适当的变化?请在回答时不参考专有偏好,以便感知更好的性能,大多数人会承认这通常是一种足够合理的辩护。

0 投票
4 回答
2546 浏览

c - 为列表节点分配内存的安全方法

在一个简单的列表中,例如:

如果我在单个分配中分配节点和数据有什么问题(假设我知道大小),比如

并始终在分配块的末尾分配数据,

节点和数据将被一次性删除,因此将它们紧密耦合没有真正的问题(按设计)

我正在查看可移植性问题(特别是包装问题)或其他未知问题?

这种分配方式安全便携吗?

0 投票
11 回答
1978 浏览

c++ - “便携式” C 是否应该编译为 C++?

我收到了对我在 C 问题上发布的答案的评论,其中评论者建议应该编写代码以使用 C++ 编译器进行编译,因为原始问题提到代码应该是“可移植的”。

这是对“便携式C”的常见解释吗?正如我在对该答案的进一步评论中所说的那样,这让我感到非常惊讶,我认为可移植性意味着完全不同的东西,并且认为编写也是合法 C++ 的 C 代码几乎没有什么好处。

0 投票
4 回答
21264 浏览

java - 在 Windows 上用 Java 并发文件写入

当您在同一个文件上同时打开两个(或多个)FileOutputStreams 时会发生什么?

Java API是这样说的:

特别是某些平台,一次只允许一个 FileOutputStream(或其他文件写入对象)打开一个文件进行写入。

我猜 Windows 不是这样的平台,因为我有两个线程读取一些大文件(每个都是不同的),然后将其写入同一个输出文件。没有抛出异常,文件被创建并且似乎包含来自两个输入文件的块。

附带问题:

  • Unix 也是这样吗?
  • 而且由于我希望行为相同(实际上我希望一个线程正确写入,而另一个线程被警告冲突),我如何确定文件已经打开以进行写入?
0 投票
6 回答
20198 浏览

c++ - C++ 中的定宽整数

有时我需要使用固定宽度的整数与 PLC 等外部设备进行通信。我还使用它们来定义位掩码并执行图像数据的位操作。AFAIK C99 标准定义了固定宽度的整数,如 int16_t。但是我使用的编译器 VC++ 2008 不支持 C99 并且 AFAIK 微软不打算支持它。

我的问题是在 C++ 中使用固定宽度整数的最佳做法是什么?

我知道 VC++ 定义了像 __int16 这样的非标准固定宽度整数,但我对使用非标准类型犹豫不决。下一个 C++ 标准会定义固定宽度的整数吗?

0 投票
2 回答
2788 浏览

c - GNU make %-style 模式规则的可移植等价物

我正在按照“使用 Autotools 检查”页面上的说明来尝试在(当前)小型 C 项目中构建对单元测试的支持。虽然我使用的是Cgreen而不是Check

我在执行第 9 步时遇到了问题,这导致 automake 发出关于使用 `%' 样式的模式规则作为 GNU make 扩展的警告。

具体的制作规则是:

我想知道是否有一种等效的方法来指定此规则,它不依赖于 gnu make 扩展。

0 投票
3 回答
3442 浏览

c - 在 C 中如何编写适合操作系统的行尾字符?

Unix 有\n,Mac 是\r,但现在是\n,DOS/Win32 是\r\n。使用 C 创建文本文件时,如何确保使用适合操作系统的行尾字符?

0 投票
5 回答
6871 浏览

c# - 用 C# 编写 USB 驱动器便携式应用程序

关于拥有 USB 闪存设备,我最喜欢的事情之一就是随身携带一堆有用的工具。我想写一些工具,让它们在这种环境下运行良好。我最了解 C#,而且我的工作效率很高,所以我可以用这种方式立即启动一个 Windows 窗体应用程序。

但是在制作便携式应用程序时我应该考虑哪些因素?我能想到的一些,但不知道答案:

1) 语言可移植性 - 好的,我知道我使用它的任何机器都需要安装 .NET 运行时。但是由于我只经常使用一些 Windows 机器,所以这应该不是问题。我可以使用另一种语言对其进行编码,但随后我会失去生产力,尤其是在简单的表单设计器方面。从闪存驱动器运行 .NET 应用程序是否还有其他问题?

2) 读/写周期 - 在 C# 中,我如何确保我的应用程序没有不必要地写入驱动器?我是否总是可以控制写入,或者是否有任何“隐藏的写入”需要考虑?

3)悬而未决的问题:是否还有其他与可移植应用程序相关的问题我应该注意,或者可能对具有良好 IDE 的其他语言的建议可以让我获得类似水平的生产力但更好的可移植性?

0 投票
7 回答
3091 浏览

c++ - 便携式共享对象?

是否可以像 Windows 中的 DLL 一样以可移植的方式使用共享对象文件?

我想知道是否有一种方法可以为 Linux 提供一个可立即使用的编译库。就像您可以在 Windows 中编译 DLL 一样,它可以在任何其他 Windows 上使用(好的,不是任何其他的,但在大多数 Windows 上都可以)。

这在Linux中可能吗?

编辑:
我刚刚醒来并阅读了答案。有一些非常好的。
我不是想隐藏源代码。我只是想提供一个已经编译好的可以使用的库,所以没有编译经验的用户不需要自己做。
因此,我们的想法是提供一个可以在尽可能多的不同 Linux 上运行的 .so 文件。
该库是用 C++ 编写的,使用 STL 和 Boost 库。

0 投票
5 回答
1045 浏览

development-environment - 便携式 Windows 开发环境和 USB 拇指驱动器

在过去的几年里,当我不得不重新安装操作系统和 20 多种开发工具和应用程序时,我发现自己浪费了越来越多的时间。我希望在虚拟机上做更多的工作。

现在您开始看到 32GB 和 64GB 拇指驱动器。我想知道你能从 USB 拇指驱动器运行 Virtual PC 或 VMWare 映像吗?这样做有什么问题吗?我会计划每天备份图像,以防驱动器发生故障。