#
我开始研究旧的 C 代码(Unix v6),我想知道文件开头的单个的目的是什么.c
。例如来自https://github.com/lsahn-gh/unix-v6/blob/master/sys%2Fken%2Falloc.c
#
/*
*/
#include "../param.h"
#include "../systm.h"
#include "../filsys.h"
...
#
我开始研究旧的 C 代码(Unix v6),我想知道文件开头的单个的目的是什么.c
。例如来自https://github.com/lsahn-gh/unix-v6/blob/master/sys%2Fken%2Falloc.c
#
/*
*/
#include "../param.h"
#include "../systm.h"
#include "../filsys.h"
...
当 Linux 有交换而没有交换时它可以做什么?
对于这个问题,我想关注例如具有 32 GB RAM 且没有交换的 Linux PC 与具有 16 GB RAM 和 16 GB 交换的几乎相同的 Linux PC 之间的区别。请注意,我对“是的,但是如果将交换添加到 32 GB PC 可以看到 X 改进”不感兴趣。这是这个问题的题外话。
我第一次遇到这样的观点,即添加交换比在早期问题的注释中添加 RAM 更好。
我当然读过这个:如果我有足够多的 RAM,我需要交换空间吗?和...
mmap
,但这似乎是一个非常具体且晦涩的风险,仅与OOM情况相关,并且可能仅与私有mmap 相关。交换通常被视为扩展内存或提高性能的一种廉价方式。但是,当大规模生产嵌入式 Linux 设备时,情况就发生了翻天覆地的变化……
...在这种情况下,交换会磨损闪存,导致它在保修期结束前几年失效。将 RAM 翻倍是在设备上多花几美元。
请注意,这是 eMMC 闪存而不是 SSD!. 通常 eMMC 闪存没有磨损均衡技术,这意味着它的磨损速度比 SSD 快得多
在这件事上似乎有很多激烈的争论。我真的在寻找关于能力的枯燥事实,而不是“你应该/不应该”的意见。
通过添加 RAM 也无法完成的交换可以做什么?
我必须在机器上复制文件。而且数据非常庞大。现在服务器需要正常服务,并且通常有特定范围的繁忙时间。那么有没有一种方法来运行这样的命令,如果服务器达到繁忙时间,它会暂停进程,当它超出该范围时,它会恢复它?
预期结果
cp src dst
if time between 9:00-14:00 pause process
After 14:00 resume cp command.
如何在 Bash 中找到发生错误的行号?
我创建了以下带有行号的简单脚本来解释我们需要什么。该脚本将从
cp $file1 $file2
cp $file3 $file4
当其中一个cp
命令失败时,该函数将以 exit 1 退出。我们希望向函数添加功能,以便还使用行号(例如,8 或 12)打印错误。
这可能吗?
1 #!/bin/bash
2
3
4 function in_case_fail {
5 [[ $1 -ne 0 ]] && echo "fail on $2" && exit 1
6 }
7
8 cp $file1 $file2
9 in_case_fail $? "cp $file1 $file2"
10
11
12 cp $file3 $file4
13 in_case_fail $? "cp $file3 $file4"
14
使用ripgrep ( rg
),我可以只打印与给定模式匹配的文件名吗?
我正在尝试做两件事:
ag -g pattern
)我不知道如何做任何一个。