小编nor*_*itt的帖子

如何在 C++11 中将 unix 时间戳字符串正确转换为 time_t?

假设我们有一个文本文件,并将一些时间戳从那里读取到局部变量“sTime”中:

std::string sTime = "1440966379" // this value has been read from a file.
std::time_t tTime = ? // this instance of std::time_t shall be assigned the above value.
Run Code Online (Sandbox Code Playgroud)

我如何将此字符串正确转换为 std::time 假设:

  1. 我们可能只使用 STL 手段(没有提升)。
  2. 我们使用 C++11 标准
  3. 我们不知道我们使用的是哪种 CPU 架构/操作系统(它应该跨平台工作)
  4. 我们无法对 time_t 的内部定义做出任何(静态)假设。当然我们知道在大多数情况下它会是一个整数类型,可能是 32 位或 64 位长度,但是根据cppreference.com并没有指定 time_t 的实际 typedef。所以 atoi, atol, atoll, strtoul ... 等等都是没有问题的,至少在我们通过其他方式确定我们确实从这些可能的候选人中选出了正确的一个之前。

c++ string time type-conversion

4
推荐指数
1
解决办法
2550
查看次数

与 POSIX 等待机制最接近的 Windows 是什么?

Linux 支持“sys/wait.h”中定义的 POSIX 等待机制。方法wait、waitid、waitpid可用于在使用fork创建的父进程和子进程之间交换状态信息。

Windows 既不提供 fork 的(本机)支持,也不提供 POSIX 等待机制。相反,还有其他方法可用于 spwan 子进程,即CreateProcess

将使用 fork/wait 用 C 或 C++ 编写的 linux 应用程序移植到 Windows 时,监视父进程中子进程的状态更改(即WEXITED、WSTOPPED、WCONTINUED)的最合适的本机*方法是什么?

*本机意味着不使用不随 Windows 附带或由 MS 以运行时环境形式直接提供的其他库、框架、程序(如 cygwin、minGW)。

编辑:根据评论中的要求,我确实以伪代码的形式提供了一些关于应该解决什么问题的更多信息:

//creates a new child process that is a copy of the parent (compare 
//POSIX fork()) and returns some sort of handle to it.
function spawnChild() 

// returns TRUE if called from the master process FALSE otherwise …
Run Code Online (Sandbox Code Playgroud)

c windows monitoring status wait

3
推荐指数
1
解决办法
2175
查看次数

Vim 的永久固定的类似 IDE 的布局

我刚刚开始使用 gVim,我正在努力建立一个工作基础来提高工作效率。

我已经完成了基本配置并安装了一些插件:

  • 剪辑伴侣
  • MiniBufExpl
  • 标签列表
  • 环绕
  • 乳胶漆

我已经阅读了关于如何在 vim 中执行基本操作的教程“vimtutor”,以及有关 netrw 的一些基础知识。我现在想要实现的是让 Vim 表现得像一个 IDE。因此,一旦我打开 vim,我想自动获得这样的特定屏幕设置:

+-----------------------------------------------------------+
|                      MiniBufExpl                          |
| [1: Tab1][2: Tab2][3: Tab3]...                            |
+-----------------------------------------------------------+
| NetRw |         File contents as tabs           | TagList |
|       |                                         |         |
|       |                                         |         |
   ...                     ...                        ...   
|       |                                         |         |
+-----------------------------------------------------------+
|                  Compiler/Debug messages                  |
|                                                           |
+-----------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

我目前的问题是:

  1. 一旦设置了这样的布局,我如何让 Vim 记住它?(我还不擅长编写 Vim 脚本,每次使用“split”命令手动设置布局有点不方便)。

  2. 无论我使用 ":open" 命令、netrw 还是任何其他方式打开文件,如何才能始终在布局的中心区域打开文件?

如果有充分的理由,我可能会考虑使用 NerdTree 而不是 Netrw。我决定尝试坚持使用 Netrw 的原因是,不依赖太多插件会很好,所以我学会了在具有基本 Vim …

ide vim layout

0
推荐指数
1
解决办法
1139
查看次数

标签 统计

c ×1

c++ ×1

ide ×1

layout ×1

monitoring ×1

status ×1

string ×1

time ×1

type-conversion ×1

vim ×1

wait ×1

windows ×1