标签: posix

仅列出目录中的文件夹

我想列出C++目录中的文件夹,理想情况是在便携式(以主要操作系统工作)方式.我尝试使用POSIX,它工作正常,但我怎样才能确定找到的项目是否是文件夹?

c++ posix

20
推荐指数
4
解决办法
2万
查看次数

如何在C++中将iso 8601日期(可选毫秒)解析为struct tm?

我有一个字符串,应该用ISO 8601格式指定一个日期和时间,其中可能有或没有毫秒,我想struct tm从它获得一个以及可能已指定的任何毫秒值(可以是如果不存在于字符串中则假定为零).

检测字符串格式是否正确,以及将用户指定的字符串转换为struct tm毫秒和毫秒值会涉及什么?

如果它不是毫秒问题,我可能只是使用C函数strptime(),但我不知道当秒包含小数点时该函数的定义行为应该是什么.

最后一点需要注意的是,如果可能的话,我会更喜欢一种解决方案,它不依赖于仅在Boost中找到的函数(但我很乐意接受C++ 11作为先决条件).

输入看起来像:

2014-11-12T19:12:14.505Z
Run Code Online (Sandbox Code Playgroud)

要么

2014-11-12T12:12:14.505-5:00
Run Code Online (Sandbox Code Playgroud)

Z在这种情况下,表示UTC,但可以使用任何时区,并将表示为与GMT的+或 - 小时/分钟偏移.秒字段的小数部分是可选的,但它可能存在的事实是我不能简单地使用strptime()或者std::get_time(),如果在字符串的秒部分中找到这样的字符,则不会描述任何特定的定义行为.

c++ parsing posix datetime-format

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

运行 Tensorflow 时“启动无法生成子进程:没有此类文件或目录”的含义

每当我尝试构建几个层时,带有 CUDA 11.2 的 Ubuntu 20.04 上的 Tensorflow 2.9.1 都会不断向标准输出写入以下错误:

2022-06-05 08:32:29.319040: I tensorflow/stream_executor/cuda/cuda_dnn.cc:384] Loaded cuDNN version 8100
2022-06-05 08:32:29.527708: I tensorflow/core/platform/default/subprocess.cc:304] Start cannot spawn child process: No such file or directory
Run Code Online (Sandbox Code Playgroud)

没有回溯或任何东西。不过,该模型似乎可以正常构建,但我想知道是否有任何性能影响。

这个错误的原因可能是什么?有没有办法在不重建 Tensorflow 二进制文件的情况下增加输出的详细程度?

python posix tensorflow

20
推荐指数
1
解决办法
1万
查看次数

从内部探测chroot监狱

如何在没有root权限的情况下检测到chroot监狱?假设标准的BSD或Linux系统.我想出的最好的方法是查看"/"的inode值并考虑它是否相当低,但我想要一种更准确的检测方法.

[edit 20080916 142430 EST] 简单地查看文件系统是不够的,因为复制诸如/ boot和/ dev之类的东西以欺骗被监禁的用户并不困难.

[edit 20080916 142950 EST] 对于Linux系统,在/ proc中检查意外值是合理的,但是那些首先不支持/ proc的系统呢?

unix linux bsd posix chroot

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

在运行时在Mac OS X上设置进程名称

我想,因为它似乎在改变我的进程的名称ps,并Activity Monitor在运行时.我发现有几个笔记说没有可移植的方法(我不关心).

这是我尝试过的.这些方法都不适合我.

  • 改变argv[0](似乎是在某些Unix系统上的方式)
  • 调用 [[NSProcessInfo processInfo] setProcessName:@"someName"]
  • 调用setprogname(调用getprogname返回我设置的名称,但这是无关紧要的)

我还读到了一个被调用的函数setproctitle,stdlib.h如果它可用,应该定义它,但它不存在.

必须有一种方法可以实现这一点,因为QTKitServer-- QuickTime Player X的无面解码器 - 在其进程名称中具有相应的QuickTime Player的PID.

有没有人知道如何做到这一点?我非常喜欢使用Core Foundation或POSIXy方法来实现Objective-C方法.

谢谢,

马尔科

编辑:如果它有任何相关性,我使用的是Mac OS X 10.6.5和Xcode 3.2.5

macos posix process

19
推荐指数
2
解决办法
7085
查看次数

如果close(2)与EIO失败,文件描述符是否仍会被删除?

如果close(2)系统调用与EIO失败,文件描述符是否仍会被删除?

如果是,通过稍后重试是否无法处理虚假IO错误?如果不是,应该如何防止文件描述符泄漏?

c unix posix system-calls

19
推荐指数
1
解决办法
1731
查看次数

NPTL和pthread令人困惑

NPTL和POSIX线程之间的基本区别是什么?这两个是如何进化的?

linux posix pthreads nptl

19
推荐指数
2
解决办法
1万
查看次数

是否有最低限度的POSIX.2外壳?

在以下意义上是否存在符合POSIX .2标准的最小shell(让我们称之为mpcsh):

如果mpcsh myscript.sh在我的(兼容)系统上行为正确,则xsh myscript.sh 对于xsh任何兼容系统上的任何符合POSIX.2的shell ,其行为都相同.("相同",以及不太相关的事情,如错误信息的措辞等)

是否几许资格吗?

如果没有,有没有办法验证合规性myscript.sh

shell posix

19
推荐指数
2
解决办法
3342
查看次数

C/POSIX语言环境中扩展字节/字符的行为

C和POSIX都只需要在C/POSIX语言环境中存在非常有限的一组字符,但允许存在其他字符.这为实施留下了很大的自由; 例如,支持C语言环境中的所有Unicode(作为UTF-8)是符合行为的.但是,大多数历史实现都将C语言环境视为具有"8位清除"单字节字符编码,ISO-8859-1(Latin-1)或某种"抽象8位字符集",其中非ASCII字节是没有特定标识的抽象字符.(但是,在后一种情况下,如果编译器定义__STDC_ISO_10646__,它们规范地对应于Unicode字符,通常是Latin-1范围.)

另一个看似不太受欢迎的符合选项是将所有非ASCII字节视为非字符,即以EILSEQ错误响应它们.

我有兴趣知道是否有实现在实现C语言环境中采用这个或任何其他不寻常的选项.是否存在尝试在C语言环境中转换"高字节"的实现EILSEQ或除了将它们视为(抽象或拉丁-1)单字节字符或UTF-8之外的任何其他实现?

c locale posix character-encoding

19
推荐指数
3
解决办法
2036
查看次数

可写(2)返回0字节写*,如果有,该怎么办?

我想实现一个适当的write(2)循环,它接受一个缓冲区并一直调用,write直到写入整个缓冲区.

我想基本的方法是这样的:

/** write len bytes of buf to fd, returns 0 on success */
int write_fully(int fd, char *buf, size_t len) {
  while (len > 0) {
    ssize_t written = write(fd, buf, len);
    if (written < 0) {
      // some kind of error, probably should try again if its EINTR?
      return written;
    }
    buf += written;
    len -= written;
  }
  return 0;
} 
Run Code Online (Sandbox Code Playgroud)

...但是这引发了一个问题:是否write()可以有效地返回写入的0字节以及在这种情况下该怎么做.如果情况仍然存在,上面的代码只会热情地转动,write这似乎是一个坏主意.只要返回零以外的其他内容,您就可以取得进展.

手册页write有点含糊不清.它说,例如:

成功时,返回写入的字节数(零表示没有写入).

这似乎表明在某些情况下这是可能的.只显示了一个这样的场景: …

c linux file-io posix

19
推荐指数
2
解决办法
2616
查看次数