问题标签 [os-dependent]
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.
sql - '^M' 字符在行尾
当我在 Unix 环境中运行特定的 SQL 脚本时,我在 SQL 脚本的每一行末尾看到一个“^M”字符,因为它回显到命令行。我不知道 SQL 脚本最初是在哪个操作系统上创建的。
是什么原因造成的,我该如何解决?
java - file.createNewFile() 在实际创建时间之前创建最后修改时间的文件
我正在使用JPoller来检测对特定目录中文件的更改,但它丢失了文件,因为它们最终的时间戳早于它们的实际创建时间。这是我的测试方式:
这就是我得到的输出:
结果是一个竞争条件:
- JPoller 将上次检查的时间记录为 xyz...123
- 在 xyz...456 创建的文件
- 文件最后修改的时间戳实际上读取 xyz...000
- JPoller 查找时间戳大于 xyz...123 的新/更新文件
- JPoller 忽略新添加的文件,因为 xyz...000 小于 xyz...123
- 我把头发拉了一会儿
我尝试深入研究代码,但最终都lastModified()
解决createNewFile()
了本机调用,所以我只剩下很少的信息了。
因为test.9
,我损失了 957 毫秒。我可以期待什么样的准确性?我的结果会因操作系统或文件系统而异吗?建议的解决方法?
注意:我目前正在使用 XFS 文件系统运行 Linux。我在其中编写了一个快速程序,C
stat系统调用显示st_mtime
为truncate(xyz...000/1000)
.
更新:我在带有 NTFS 的 Windows 7 上运行了与上面相同的程序,它确实保持了完整的毫秒精度。MSDN 链接@mdma 提供了进一步的说明,FAT 文件系统对于分辨率为 10 毫秒的创建是准确的,但对于访问仅准确到 2 秒。因此,这确实取决于操作系统。
c++ - 服务器客户端应用程序,我在想一种干净的方式来处理服务器端的客户端数据时遇到了麻烦
我有一个在 Linux 上用 C++ 编写的服务器客户端应用程序。当客户端连接到我的服务器时,服务器会生成一个线程,等待客户端发送服务器命令以执行。这些命令取决于操作系统。客户端与服务器对话的线程调用全局函数来执行客户端所需的命令。因此,对于客户端发送到服务器以执行的每个依赖于操作系统的命令,我必须有两个函数。所有这些全局函数都定义在与主线程函数相同的头文件中。对于不同的操作系统,所有这些功能都变得有点混乱。我的想法是编写两个名为 WindowsFuncs 和 LinuxFuncs 的类,它们具有静态成员函数,它们为该类设计的操作系统执行所需的命令。
javascript - 操作系统独立的键盘事件到字符映射
显然,Web 应用程序需要根据用户的键盘设置进行调整,对吗?有没有办法告诉 Dojo 连接到实际的 KeyPress 事件而不是 KeyDown,这样我们就可以从 获取输入的字符event.charCode
?
由于我们生活在一个国际化的世界中,有多个操作系统等等,这些信息不足以找出用户实际输入的字符,除非我在浏览器中内置了一些功能来询问操作系统。
例如,在 Linux 上的德语键盘上,[ 通过 Alt Gr-8 到达,它发送一个用于 Alt 的按键,然后发送一个带有 [ 的按键。好吧,忽略第一部分。在带有德语键盘的 Windows 系统上,第二个事件是针对 8 且 ctrlKey 和 altKey 设置为 true。我不认为 JavaScript 代码应该解释硬编码,因为使用其他键盘设置,这个组合键实际上意味着不同的字符。
再举一个例子(可能没有连接到 Dojo,而是其他程序员的小故障,对咆哮感到抱歉……),在 mac 上使用美式键盘时,您无法在 Outlook Web 界面中键入德语字符 ß - 因为 Outlook 伪造( !) 劫持 alt 键(在 mac 上专门用于修改键入的字符)以触发操作,因此 alt-s 被重新映射为发送。当然,通常在一个单词的中间。
scala - 字符串模板中的 Scala 和行尾
我正在编写验收测试,它验证来自嵌入式服务器的 HTTP 响应。所以看起来像
到目前为止,它在我的 Linux 机器上运行良好,但是当在 Windows 上调用测试时 - 它失败了。
我认为这是因为行尾 - Windows 中的行尾与 Linux 中的不同。是否有任何简单的方法可以在编译的测试数据中提供特定于操作系统的行尾?
npm - 适用于 Android 和 iOS 的不同软件包版本
我正在使用 React Native 为 Android 和 iOS 开发一个应用程序。
我正在使用的其中一个库有点问题,因为该应用程序只能正确编译:
- ...在Android上使用
"react-native": "0.42.0"
. - ...在iOS上使用
"react-native": "0.37.0"
.
(对于这个讨论,库本身和具体版本react-native
都不重要。重要的是我似乎“同时”需要两个单独的版本——每个平台都有一个不同的版本。)
我正在寻找一种方法来拥有一个单一的代码库,该代码库可以使用任何平台的相关工具进行编译,无需任何修改1。我想到的解决方案是(以某种方式):
- 为每个移动操作系统指定不同的软件包版本。
- 每个平台都有完全不同
package.json
的文件。
但是,我不知道如何实现上述任何一个,或者它们是否可能。我尝试按照平台特定代码的 React-Native 文档中的说明添加.ios
和,但 npm 无法识别这些文件。.android
所以我的问题是:
- 我的想法可行吗?如果可行 - 怎么样?
- 有没有其他方法可以得到想要的结果?
1在类 C 代码中,使用预处理器标志很容易做到这一点。
python - 使用 python 日志记录模块的操作系统相关行为
按照这个问题和答案,我正在寻找以下问题的解决方案:
我有一个 Python 程序,它应该可以在 Windows 和 Linux 上运行。
我的 python 进程产生了一个子进程,它们都应该有一个文件记录器。我希望他们每个人都登录自己的日志文件。
进程创建:
日志创建:
在 Windows 中效果很好,但在 Linux 中,我将子输出写入子日志和父日志。
处理这种情况的最佳方法是什么?
c# - 在 MT 环境中使用 .Net Core 为桌面应用程序提高属性更改的推荐方法是什么
在过去的 10 年中,我将 WPF 与“Dispatcher”一起使用,以确保 UI 线程能够接收通知。我在基础“模型”类中使用这样的代码:
在这个SO Question中,一些人谈论 AsynContext,另一个人似乎添加了 nuget 包“Microsoft.NET.Sdk.WindowsDesktop”,这似乎依赖于 Windows 操作系统。
在新的桌面应用程序中执行等效操作的推荐方法是什么?调度员在哪里?有没有等价的?我们可以保持我们的代码操作系统独立吗?我们是否应该再等几个月,直到微软推出独立于操作系统的解决方案?