这类似于这里提出的问题:
唯一的区别是我想将其更改为特定值,而不是随机值。hfs.util 似乎只是随机的。
我考虑修改hfs.util 源以允许我指定值。当我在代码中寻找从哪里开始进行更改时,我想起了为什么 C不是我最喜欢的语言。后来几次编译错误和段错误,我失去了尝试修改这个工具的热情。我愿意在休息后再次尝试,但我认为必须有一种更简单的方法来更改我只是不知道的卷的 UUID。
所以在我浪费时间之前,有没有人知道一种简单的方法来做到这一点?或者有没有 C 专家愿意加入我的努力,让 hfs.util 将 UUID 更改为指定值?
以下是我为了能够从源 OS X 10.6.8 编译该工具所做的更改:
hfsutil_jnl.c:
47: #include <hfs_fsctl.h>
Run Code Online (Sandbox Code Playgroud)
hfsutil_main.c:
80: #include <uuid/uuid.h>
81: /* REMOVED */
Run Code Online (Sandbox Code Playgroud)
并且,正如本文所暗示的,将fs.c 中第 166 行的以下内容添加到 hfsutil_main.c(因为 namespace.h 不在系统中的任何位置):
static unsigned char kFSUUIDNamespaceSHA1[] = {0xB3,0xE2,0x0F,0x39,0xF2,0x92,0x11,0xD6,0x97,0xA4,0x00,0x30,0x65,0x43,0xEC,0xAC};
Run Code Online (Sandbox Code Playgroud)
最后,我抓取了这个文件并将其添加到工作目录http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/bsd/hfs/hfs_fsctl.h
我有一个工具链,可以生成通常为 1920x1080 的帧,但偶尔也生成 1919x1080 或 1920x1079 的帧。(是的,这是一个错误。请继续阅读。)当 ffmpeg 从中编码视频时,使用如下命令
ffmpeg -y -r 30 -i foo/%04d.png -vcodec h264 out.mp4
Run Code Online (Sandbox Code Playgroud)
然后它打印这样的注释
Input stream #0:0 frame changed from size:1919x1080 fmt:rgb24 to size:1920x1080 fmt:rgb24
Run Code Online (Sandbox Code Playgroud)
但这些帧并没有被调整大小并包含在 中out.mp4,而是从 中省略out.mp4。
可以包含那些框架吗?我在论坛和文档中没有发现任何提及非恒定帧大小的内容,但 ffmpeg 本身在这里声称可以调整帧大小。(该注释打印在 ffmpeg.c 的第 1688 行。那里resample_changed设置了一个标志,这会导致 的宽度和高度字段InputStream *ist被纠正。)
David Elliman 可能在/sf/ask/1263068901/ generated-video-from-images?rq=1 的答案中报告了类似的行为。
Windows 中有一个小错误,我想创建一个小应用程序作为解决方案。因此,在我的公司中,我们有多个网络驱动器(F:\、G:\、H:\、I:\ 等),有时如果我连接外部 USB 设备(例如读卡器),Windows 会分配一个已使用的驱动器号。例如,我有一个网络驱动器 F:\,我连接了我的读卡器,Windows 也会将 F:\ 分配给这个设备,所以我不能使用那个 USB 设备,直到我改变它的驱动器号。
所以我的问题是:
我想在 C 中做到这一点。
谢谢。
我很难理解这个问题。
我的测试设置有一个 shell 脚本,它在 1G 文件上连续调用 'ls -la' 并打印出自上次运行以来的时间。然后我运行一个程序来修改文件的某些部分并将其同步到磁盘。
无论我是调用 fsync,还是系统进行同步,或者即使我使用 pwrite 编写不同的部分(仍在测试该位),当同步发生时,“ls -la”将冻结整个同步时间 - 7-40 秒之间(取决于修改的稀疏性)。
如果我使用 msync 一次同步块,或者在我写入时尝试更频繁地 fsync,持续时间会变得更大(可能是原来的 10 倍,但甚至更长,具体取决于我这样做的频率)。上面的 msync 仅以 16KB/Transaction 写入,即使页面是顺序的。
我在某处读到 OpenBSD 实现了“部分文件写入”或其他内容。我现在记不太清了。
无论如何,我可以做一些与 fsync 的效率类似的事情,而不会一直锁定文件吗?
实际上,“A”问题(我认为此“B”是解决方案)是简单地处理大文件并“鼓励”它们写入磁盘,以便在需要时可以快速释放内存是。简单地省略 NO_SYNC 是没有好处的,因为更改几乎同时发生,导致这种情况。其他 madvise 选项似乎也没有帮助。也就是说,如果我不同步,那么页面似乎会一直存在,直到内存不足,它们会突然开始交换(尽管只有 16KB/事务和非常低的 MB/s)。
你到底是如何在 FreeBSD 上处理大文件的?
解决方案:
我发现通过调整我的 msync 块并在 msync 调用中使用 MS_ASYNC 而不是 MS_SYNC,我可以获得我想要的性能,同时仍然允许其他进程打开和 mmap/读取文件。
我正在测试一些代码,其中使用当前时间作为种子生成的一些随机数
sand(时间(0))
我希望每次运行时都能得到相同的随机数。所以我想在运行程序之前暂时将当前时间的值设置为某个预定义的值。并且请不要要求我暂时删除随机数,因为它非常重要。
另外,我没有 root 访问权限,因此无法使用该date命令或其编程等效命令设置日期/时间。
我已经安装了 NetBeans 7.3(今天两次),并安装了 MinGW(今天多次)。我的操作系统 Win 7 64
我尝试使用 MSYS 安装 MinGW,尝试使用 MSYS 和 MinGW DT 安装 MinGW,不使用 MSYS 的 MinGW,尝试单独安装 MSYS,尝试以特权用户身份安装,更改 PATH 和编译器设置,将项目移动到“C:\prj”目录,并尝试将 libgcc_s_dw2-1.dll 添加到我的项目文件夹中,但每次都无法编译任何内容。
我的 PATH 和编译器选项目前看起来像


但是当我尝试编译某些东西时,例如(C/C++ 应用程序)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
return (EXIT_SUCCESS);
}
Run Code Online (Sandbox Code Playgroud)
或者无论如何,它可能是一个空文件,我仍然收到错误:
"/c/Users/samsung/Documents/NetBeansProjects/CppApplication_2/"C:/MinGW/msys/1.0/bin/make.exe"" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
/bin/sh: /c/Users/samsung/Documents/NetBeansProjects/CppApplication_2/C:/MinGW/msys/1.0/bin/make.exe: No such file or directory
make.exe": *** [.build-impl] Error 127
BUILD FAILED (exit value 2, total time: 758ms)
Run Code Online (Sandbox Code Playgroud)
我将不胜感激任何改善这种情况的建议。谢谢!
在文件中/etc/passwd我们有所谓的GECOS fields(代表“通用电气综合操作系统”),即:
username:password:userid:groupid:gecos:home-dir:shell
Run Code Online (Sandbox Code Playgroud)
其中GECOS分为:
:FullName,RoomAddress,WorkPhone,HomePhone,Others:
Run Code Online (Sandbox Code Playgroud)
并被Others分成任意多的逗号:
:FullName,RoomAddress,WorkPhone,HomePhone,Other1,Other2,Other3:
Run Code Online (Sandbox Code Playgroud)
在man chfn页面中可以阅读:
另一个字段用于存储其他应用程序使用的记帐信息。
现在,应用程序开发人员(我很感兴趣C language,system calls和/或bash script),这就是抓住这个信息的最佳方式?
仅考虑Bash环境,鉴于该finger命令无法显示others字段(或者至少我不知道如何显示),还有哪些其他命令可以显示?我知道这chfn不仅是展示,而且是允许它们被改变。如果只是将它输出到stdout怎么办?
我升级到 Ubuntu 18.04,vmmon.ko现在无法构建 VMWare Workstation 12.5.9的模块。
/usr/lib/vmware/modules/source/vmmon-only/linux/driver.c: In function ‘LinuxDriverInitTSCkHz’:
/usr/lib/vmware/modules/source/vmmon-only/linux/driver.c:268:22: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
tscTimer.function = LinuxDriverEstimateTSCkHzDeferred;
^
/usr/lib/vmware/modules/source/vmmon-only/linux/driver.c:270:12: error: ‘struct timer_list’ has no member named ‘data’
tscTimer.data = 0;
^
/usr/lib/vmware/modules/source/vmmon-only/linux/driver.c: In function ‘init_module’:
/usr/lib/vmware/modules/source/vmmon-only/linux/driver.c:312:4: error: implicit declaration of function ‘init_timer’; did you mean ‘init_timers’? [-Werror=implicit-function-declaration]
init_timer(&linuxState.pollTimer);
^~~~~~~~~~
init_timers
/usr/lib/vmware/modules/source/vmmon-only/linux/driver.c:313:24: error: ‘struct timer_list’ has no member named ‘data’
linuxState.pollTimer.data = 0;
^
/usr/lib/vmware/modules/source/vmmon-only/linux/driver.c:314:34: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
linuxState.pollTimer.function = LinuxDriverPollTimeout; …Run Code Online (Sandbox Code Playgroud) 我已经编写了一个 C 应用程序,我想在启动时运行它。软件操作包括 GPIO 操作和我正在使用的 Beaglebone Black 上附加的投影斗篷。
我最终创建了一个供 Systemd 管理的服务。看起来像这样
[Unit]
Description=CGBHIS Service
[Service]
Type=simple
User=root
ExecStart=/home/debian/4190/primary/pattern_disp
Restart=on-failure
RestartSec=15
KillMode=process
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
我知道 systemd 已经以 root 身份运行服务,但正在发生的事情似乎正在关闭 root 访问。当我打印 Journalctl 时,我应该看到三个打印语句。然而,我看到的是这样的。
Nov 14 17:51:48 beaglebone systemd[1]: Started CGBHIS Service.
Nov 14 17:51:48 beaglebone sudo[9218]: root : TTY=unknown ; PWD=/home/debian/4190/primary ; USER=root ; COMMAND=/usr/sbin/service lightdm stop
Nov 14 17:51:48 beaglebone sudo[9218]: pam_unix(sudo:session): session opened for user root by (uid=0)
Nov 14 17:51:50 beaglebone sudo[9218]: pam_unix(sudo:session): session closed for user …Run Code Online (Sandbox Code Playgroud) sed至少可以说对我来说是陌生的。我想遍历一个 C 项目树并注释掉调用函数的每一行LogMsg()。可以实现以下目标的东西:
foreach: line within *.c
if: line contains "LogMsg"
prepend "//"
Run Code Online (Sandbox Code Playgroud)
或者。另外,我想看看我是否可以实现相反的目标,尽管我认为这可能会更困难。
我觉得这sed是完成这项工作的合适工具,但我不是批处理文本文件编辑方面的专家。有什么帮助吗?