我正在尝试从头开始构建我的系统,因为我真的很喜欢类 Unix 方法中每个程序的原子性的想法,所以我想在我的构建中尽可能地保留它。
由于 GNU binutils 在某种程度上违反了这一原则,我想知道是否存在不依赖于 binutils 的 GNU 汇编程序?
如果没有,有没有比 GNU 汇编器更精简、更高效的替代品?我知道 yasm,但如果有更好的,我很乐意知道。
先感谢您。
我正在尝试从头开始构建我的系统,因为我真的很喜欢类 Unix 方法中每个程序的原子性的想法,所以我想在我的构建中尽可能地保留它。
由于 GNU binutils 在某种程度上违反了这一原则,我想知道是否存在不依赖于 binutils 的 GNU 汇编程序?
如果没有,有没有比 GNU 汇编器更精简、更高效的替代品?我知道 yasm,但如果有更好的,我很乐意知道。
先感谢您。
我正在开发一个嵌入式Linux系统(5.10.24),其中运行着几个应用程序。
最近,我发现一个 C 程序有些奇怪。
该 C 程序使用了 SDK 库提供的 API,该 SDK 是用 GNU 构建的-O2
,但默认情况下该 C 程序是用 GNU 构建的-O3
。
然后发现有时(运行数百次中就有一次)C 程序会Segmentation Fault
在 SDK 中的某个函数中触发。
如果 C 程序使用与 SDK 相同的 GNU 构建,则在其数千次运行中-O2
不会触发此类事件。Segmentation Fault
-O2
我在 Google 上搜索了和的区别-O3
,发现有人提到这-O3
可能会引发奇怪而有趣的错误,是真的吗?
在nano
v8.0 中,有一个选项可以将选择发送到 X 剪贴板nanorc
:
"{execute}|xsel -ib{enter}{undo}"
效果非常好。
我尝试使用xclip
实用程序代替:
"{execute}|xclip -sel c{enter}{undo}"
结果是无限执行[ Executing... ]
,在命中之前对交互不敏感^C
。取消后看起来复制完成了,没有错误,但是卡住了怎么办?为什么会发生这种情况?有解决办法吗?
我使用的是 Kubuntu 20.04.6 LTS(Focal Fossa)。
我的nice
来自 GNU coreutils 9.1。我观察到这nice -15
相当于nice -n 15
:
nice # prints 0 for me, the base niceness is 0
nice -n 15 nice # prints 15, this is expected
sudo nice -n -15 nice # prints -15, this is expected
nice -15 nice # prints 15
-15
是一个负数。为什么它会增加上面最后一个例子中的友好度?手册(例如在 Debian 12 中)没有解释这一点。
在 GNU Recutils手册中,写道
返回最长的匹配;这适用于整个正则表达式和(受此约束)组内的子表达式。
但是,当我运行以下命令时(在 macOS 上,通过自制软件安装了 recutils)
echo "Author: Knuth, Donald E." | recfmt "{{Author ~ '^([^,]+).*'}}"
结果我得到了布尔值1
。
我认为正则表达式是正确的,因为以下命令正确返回Knuth
.
echo "Knuth, Donald E." | sed -E "s/^([^,]+).*/\1/"
我误解了手册还是这是一个错误?如果是这样,是否有另一种方法来获得匹配而不是布尔值?
更新。我在 Debian 虚拟机上得到了相同的行为。
使用以下两个简单文件:
a.txt
1 a
2 b
5 c
b.txt
2 x
4 y
5 z
以下命令的行为与预期不同:
$ join -a 1 -a 2 -e 0 a.txt b.txt
1 a
2 b x
4 y
5 c z
我希望该选项-e 0
可以用零填充缺失值。但是,以下方法确实有效:
$ join -a 1 -a 2 -e 0 -o auto a.txt b.txt
1 a 0
2 b x
4 0 y
5 c z
从 阅读文档$ man join
,我发现 和 之间没有任何联系-o
,-e
这会使上述行为有意义。相反,我发现-o auto
需要在我的命令中插入一个无用的东西-e 0
才能工作是一种误导。
有解释吗?还是我应该将此作为错误提交给 coreutils?