如何在POSIX中以编程方式编写文件修改日期?

问题描述我希望从C代码触摸我的文件以修改其访问日期。这似乎不起作用:structstatfileSt;lstat(path,&fileSt);fileSt.st_mtime=time(NULL);感谢您的帮助。推荐答案我认为您需要utime(2)。这应该足够了:utime(fil

发布:2022-10-16 标签:fileunixcposix


Shebang标志与set内置标志之间的差异

问题描述在Shebang行上传递给脚本的标志与使用set内置标志的行为是否存在差异?例如:#!/bin/bash-e#dostuff与#!/bin/bashset-e#dostuff(问题不是针对-e标志,而是针对任何此类标志)。显然,set[flags]仅从其设置的点起有效。但

发布:2022-10-16 标签:bashposixsh


创建一个目录,并返回一个带有`opens`的目录

问题描述我希望在C中创建一个文件树,并避免可能的争用条件。我的目的是使用open(3)创建根目录,open将返回一个目录文件描述符(dirfd),我将把它提供给后续的openat(3)/mkdirat(3)调用以创建树。intdirfd=open(path,O_DIRECTORY

发布:2022-10-16 标签:directorylinuxcsystem-callsposix


POSIX和Linux特定函数的C++包装器

问题描述您知道有没有包装POSIX和Linux函数和结构的好库(例如,套接字或文件描述符)转换为C++类?例如,我在考虑一个基本的FileDescriptor类和一些继承类(Unix套接字等),这些类具有write、read甚至一些syscall(sendfile、plice)等

发布:2022-10-16 标签:linuxc++wrapperposix


POSIX标准对atExit()处理程序中的线程堆栈有什么规定?操作系统的做法是什么?

问题描述当我们的UNIX/C程序需要紧急退出时,我们使用exit(3)函数并安装atexit(3)处理程序进行紧急清理。这种方法工作得很好,直到我们的应用程序被线程化,在这一点上,exit()处理程序停止工作,这是可以预见的。我们通过试验了解到一个错误,即线程可能已经死在atex

发布:2022-10-16 标签:unixcatexitposix


当处于闰秒时,`gmtime()`会报告为60秒吗?

问题描述我有一个服务器在TZ=UTC中运行,代码如下:time_tt=time(NULL);structtmtm;gmtime_r(&t,&tm);问题是,当服务器在闰秒内时,tm.tm_sec==60会吗?例如,如果我处于以下时间跨度:1998-12-31T23:59:60.0

发布:2022-10-16 标签:utctimecunix-timestampposix


参数展开后,zsh不按IFS拆分

问题描述这是我的代码,用于在冒号分隔值上循环并执行某些操作使用每个值。f(){IFS=:forargin$1doechoarg:$argdone}ffoo:bar:baz这在大多数符合POSIX的shell中都可以很好地工作。$dashfoo.sharg:fooarg:barar

发布:2022-10-16 标签:shellbashzshifsposix


在POSIX sh中迭代位置参数时修改位置参数

问题描述这是便携的吗?filter(){set--CUT"$@"forx;doiftest"$x"=CUT;thenset--#ignoreargsuptohereelse#perhapsmorefilteringset--"$@""$x"fidoneprintf"'%s'""$

发布:2022-10-16 标签:shellposixsh


推荐的POSIX SH Shebang是什么?

问题描述我读到如果您想以可移植的方式使用Bash,您应该使用shebang:#!/usr/bin/envbash但现在我在想:当我想明确声明我不依赖于Bash,而是编写了一个符合POSIX的脚本时,我是否应该使用:#!/bin/sh还是#!/usr/bin/envsh在这里也更可

发布:2022-10-16 标签:shellposixsh


如何检测gdb是否正在运行当前进程

问题描述标准方式如下:if(ptrace(PTRACE_TRACEME,0,NULL,0)==-1)printf("traced!");在这种情况下,如果跟踪当前进程(例如,使用gdb运行它或附加到它),ptrace将返回错误。但这有一个严重的问题:如果调用成功返回,gdb以后可

发布:2022-10-16 标签:linuxcgdbposix