小编mk.*_*k..的帖子

Linux内核恐慌。理解 oops 消息 - pgd?

我正在尝试调试内核恐慌。内核日志说

[63859.139142] Unable to handle kernel paging request at virtual address c0a0da06
[63859.139236] pgd = ec040000
[63859.139289] [c0a0da06] *pgd=00a1941e(bad)
Run Code Online (Sandbox Code Playgroud)

我有兴趣知道什么是 pgd?谢谢你。

debugging linux-kernel panic

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

在编译时检测分段错误

我可以在编译时检测到可能的分段错误吗?

我理解分段错误的情况.但我很好奇GCC作为编译器是否有一些标志来检查导致分段错误的基本场景.

这有助于在发布库之前采取预防措施.

c gcc segmentation-fault

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

如何取消待处理的信号?

如何取消发送的信号到仍未送达的进程?

考虑我已向流程发送信号的情况,但该流程处于不可中断状态.

我正在有条件地等待处理信号.但由于它不是我想继续执行.在那种情况下,有没有办法可以取消发送的信号(尚未发送)

linux signals

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

在Linux shell脚本中,'x = $ {1:3:1}'是什么意思?

在shell脚本的功能中,我看到这样的东西

func()
{
 local x
 x=${1:3:1}
...
}
Run Code Online (Sandbox Code Playgroud)

什么x=${1:3:1}意思?我知道$1,$2并且$3是函数的参数.那么上述陈述是否意味着x = $1:$2:$3

此外,如果有人可以建议我如何谷歌搜索这样的特殊字符,这真的很有用吗?任何标准关键字?我试着搜索'是什么':"在shell脚本中等等.但是在尝试搜索特殊字符时结果是随机的.

linux bash shell sh

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

C-编辑/更新文件(不一定在最后).fopen(路径,"a +")不起作用

如何在linux中以编程方式编辑文件?这似乎是一个非常基本的问题.我很惊讶地看到目前我认为没办法这样做.

我有一个档案.我想编辑它.

从手册页,我认为"a +"模式将使我能够编辑文件,但似乎我们只能将它附加到文件的末尾,如果我们希望在文件的初始部分进行更改,则不要使用它.文件.

我希望更新一些信息,在标题中说出我创建的自定义对象的名称,我该如何以编程方式进行?

我试过了:

FILE *fp = fopen(path, "a+");
fseek(fp, DESIRED_OFFSET, SEEK_SET);
fwrite("KOLAVERIDI", 10, 1, fp);
fclose(fp);
Run Code Online (Sandbox Code Playgroud)

我想,fseek会做这个工作.但是,就像手册一样

a +打开阅读和追加(在文件末尾写).

它总是附加在文件的末尾(尽管我在fwrite()之前寻找不同的偏移量).

所以我的问题基本上是如何在C中编辑/更新文件?

c linux file edit

0
推荐指数
1
解决办法
410
查看次数

vim - 搜索并替换一个函数

我想以下面的方式替换一个函数.

Old function :
old_func(a,b,c)

New function :
new_func(b,a,c)
Run Code Online (Sandbox Code Playgroud)

如何用new_func替换old_func并处理参数(在vim中)?

vim replace

0
推荐指数
1
解决办法
547
查看次数

标签 统计

linux ×3

c ×2

bash ×1

debugging ×1

edit ×1

file ×1

gcc ×1

linux-kernel ×1

panic ×1

replace ×1

segmentation-fault ×1

sh ×1

shell ×1

signals ×1

vim ×1