草庐IT

c++ - Unix 函数 gmtime_r 的 Windows 等价物是什么?

我正在将一些Unix代码移植到WindowsVisualStudio2010中。我遇到了以下行gmtime_r(&now,&tm_time);我发现gmtime_r()是一个标准的Unix函数,但我希望找到Windows的等效函数。我在time.h中发现了很多gmtime函数,但我很难找到哪个是等价的,如果它存在的话。有人能指出我正确的方向吗? 最佳答案 gmtime_r()是gmtime()的线程安全版本。gmtime()的MSVC实现已经是线程安全的,返回的structtm*分配在线程本地存储中。如果在同一线程上多次调用该函数并

c++ - C/C++ 程序是否可以通过读取数组末尾 (UNIX) 来产生段错误?

我知道您可以读取数组的末尾-我现在想知道您是否可以仅通过执行该读取操作来产生段错误。intsomeints[100];std::cerr第二行真的会导致段错误还是只会打印乱码?此外,如果我更改了该内存,是否会导致段错误在那条特定的线路上,或者只有在其他东西试图使用意外更改的内存时才会发生故障? 最佳答案 这是未定义的行为,完全取决于操作系统为进程安排的虚拟内存布局。通常您可以:访问一些属于您的虚拟地址空间但没有意义的乱码,或者尝试访问受限内存地址,在这种情况下,内存映射硬件会调用页面错误,操作系统会决定是打扰您的进程还是分配更多内存

kotlin - 如何在 Kotlin 中将 Unix 时间戳解析为日期字符串

如何在Kotlin中将Unix时间戳解析为日期字符串?例如1532358895到2018-07-23T15:14:55Z 最佳答案 以下应该有效。它只是使用Java库来处理这个问题:valsdf=java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")valdate=java.util.Date(1532358895*1000)sdf.format(date) 关于kotlin-如何在Kotlin中将Unix时间戳解析为日期字符串,我们

kotlin - 如何在 Kotlin 中将 Unix 时间戳解析为日期字符串

如何在Kotlin中将Unix时间戳解析为日期字符串?例如1532358895到2018-07-23T15:14:55Z 最佳答案 以下应该有效。它只是使用Java库来处理这个问题:valsdf=java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")valdate=java.util.Date(1532358895*1000)sdf.format(date) 关于kotlin-如何在Kotlin中将Unix时间戳解析为日期字符串,我们

c++ - 如何创建 `DOS/Unix` 类似 GUI

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭2年前。Improvethisquestion假设使用C/C++,我想知道应该使用什么样的库来创建DOS/Linux类型的GUI?请看下面的照片(我不知道这样一个GUI的正式名称是什么,因为我从来不需要创建一个,但现在我必须创建!)。我不是要完整的教程……而是一个起点!我需要一个静态页面并在原处更新一些文本(没有新行和内容)。还有一些按钮和复选框、#填充进度条等...DOS例子:Linux示例:

c++ - 在 C++ 中将 unix 时间戳转换为星期几?

我如何根据任意Unix时间戳(秒)确定加利福尼亚州(太平洋时间)的星期几?我四处搜索,但没有找到C++的内置库。UTC通常比PT早8小时,但简单地从Unix时间戳中减去8小时并创建一个tm结构是行不通的,因为这会忽略夏令时的细微差别。 最佳答案 这是使用HowardHinnant'sdatelibrary的方法.这是一个免费的麻省理工学院许可的C++11/14库,基于:#include"tz.h"#includeintmain(){usingnamespacestd::chrono_literals;usingnamespaceda

c++ - 在 C++ unix 中异步写入文件

我有一些长循环,我需要在每次迭代时将一些数据写入文件。问题是写入文件可能会很慢,所以我想通过异步写入来减少这需要的时间。有谁知道这样做的好方法吗?我是否应该创建一个线程,通过写出它来消耗放入其缓冲区的任何内容(在这种情况下,单个生产者,单个消费者)?我最感兴趣的是那些只涉及标准库(C++11)的解决方案。 最佳答案 在进入异步写入之前,如果您正在使用IOStreams,您可能希望尝试避免意外刷新流,例如,不使用std::endl但是而是使用'\n'代替。由于对IOStreams的写入是经过缓冲的,因此可以大大提高性能。如果这还不够,

c++ - 不理解-c -o的Unix C++编译器

Autoconf/Automake竭力支持古老的C编译器,它们不理解同时使用-c和-o选项(创建目标文件这个名字)。有AM_PROG_CC_C_O和一个特殊的包装脚本,以及Automake手册warnsyoutousethem如果你想使用subdir-objects模式。没有AM_PROG_CXX_C_O。修改AM_PROG_CC_C_O来测试C++编译器并不难,但我想知道是否有必要。有没有不支持同时使用-c和-o的UnixC++编译器(也许是Cfront?)?说到这一点,不支持它的C编译器有多老了——例如,有没有支持C89的编译器有这个问题? 最佳答案

c - 将 Unix 移植到 Windows - pwd.h 的使用

我正在尝试编译libUnihan使用MinGW编写代码,但遇到了需要移植的功能。该函数的目的是获得规范的路径表示。它使用pwd.h(这是POSIX,而MinGW不是)因此它可以通过检索passwd来解释使用“~”来表示主目录结构,其中包含pw_dir。倒是找了一点资料here,以及realpath的端口here,但我仍然完全不知道如何处理这个问题。对于MinGW,我仍然有一个由~表示的主目录,位于/home/nate,但由于它不是POSIX,所以我没有pwd.h帮助我找到这个主目录的位置。问:如何移植下面的函数才能与MinGW正常工作?/***Returnthecanonicalize

windows - Powershell 在 windows 和 unix 中正确生成文件路径

我想在powershell脚本中为文件路径生成一个字符串。我希望它在Windows和Mac中都能正常工作。目前代码被硬编码到类似路径的窗口(“\”->windows,“/”->unix):$templatep="$CoreRoot\templates\$serviceName"我将其更改为:$templatep=加入路径$CoreRoot"template"$serviceName它在mac中与Powershell6.0一起工作。但是它在我的带有Powershell4的Windows服务器上不起作用。我必须做这样的事情:$templatep=Join-Path$CoreRoot-Chi