自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

龙瑜的博客

我写的不是技术是情怀

  • 博客(17)
  • 资源 (3)
  • 收藏
  • 关注

原创 未包含头文件导致的问题

未包含头文件导致的问题最近在做项目时遇到了一个奇怪的问题。调用函数获取被调函数返回的指针,获取成功后解引用时偶尔会导致程序崩溃。首先查看源码,没有发现明显的问题。这之后开始调试,在调试中发现被调函数的 return 语句处的指针值是正确的,赋值之后值发生了变化。为了进一步确定问题,我做了如下尝试:复制被调函数的函数体,将其放到调用函数内部执行,再次观察结果。这次问题没有出现,查看地址发现...

2018-12-28 19:18:22 673

原创 重读《APUE》第一章

APUE 第一章笔记当我们登录到 linux 中后,家目录是当前的工作目录。家目录的位置从 /etc/passwd 中的字段中取得。unistd.h 中包含了非缓冲 I/O 操作函数 open、read、write、lseek 与 close 函数的原型。这些函数通过 file descriptor 完成工作。对于 read、write 而言,它们面向的是字符流,通过读写指定的 buffer...

2018-12-27 20:14:08 248

原创 glibc-strlen 分析

glibc-strlen 分析strlen 以一个字符型指针为参数,使用 const 修饰符保护字符串的值不被改变。strlen 函数的一个常见实现是依次遍历每个字符,如果不为 ‘\0’,则给计数变量加 1,遇到了 ‘\0’ 则返回计数变量的值。这种实现方式当字符串长度很短时有很好的性能,当字符串较长时就有点捉襟见肘了。如果将上述常见实现作为一个天花板,它的短板在于处理长字符串时的不足,...

2018-12-26 22:49:05 278

原创 解决 canberra-gtk-module 加载失败的问题

解决 canberra-gtk-module 加载失败的问题记得很久之前,我在启动应用程序的时候会看到下面的报错信息: Gtk-Message: Failed to load module "canberra-gtk-module.so" 我已经忘记了它是从什么时候开始的,我也尝试过去解决这个问题,最后总是无疾而终,让这个问题一直在我的系统中驻留。最开始的我对这个问题的处理没有太好的思路,...

2018-12-25 21:33:32 23243 10

原创 linux 中屏幕合上后触摸板无法使用

屏幕合上后触摸板无法使用这是一个遗留问题,从两年前开始就一直存在。过去由于对驱动不熟悉,没有考虑驱动的问题。现在首先判断触摸板使用的驱动是哪一个。搜集资料发现,当前系统中的触摸板驱动为 psmouse。在正常模式下移除该驱动,触摸板无法使用。加载该驱动,触摸板能够恢复正常。研究网上的帖子进行了如下尝试:在挂起后尝试重新加载 psmouse 模块这个方法不起作用。检查发现从挂起状态...

2018-12-24 21:06:07 1287

原创 awksed.awk 分析

awksed.awk 分析用法如下:usage: awksed pat repl [files...]" > "/dev/stderr"该脚本使用 print 来完成与 s/foo/bar/g 相同的功能。步骤如下:检查参数个数如果参数个数不合法,则调用 usage 函数打印描述脚本使用方法的信息到标准错误。以 ARGV[1]、ARGV[2] 制作 RS、ORS 参数...

2018-12-23 11:30:16 226

原创 alarm.awk 分析

alarm.awk 分析alarm.awk 用法如下:usage: alarm time [ "message" [ count [ delay ] ] ]注意中括号中为可选参数,time 的格式为 hh:mm。对于需要从命令行中获取参数的脚本,首先要检查参数个数是否足够,然后要检查参数格式是否正确。对参数个数的检查可以通过判断 ARGC 的值来完成,对参数格式的检查可以通过正则表达式......

2018-12-22 11:54:42 232

原创 bad interpreter

bad interpreter今天在 linux 上执行一个脚本时产生了如下错误:[longyu@debian:17:08:10] ui $ ./rename.sh bash: ./rename.sh: /bin/bash^M: bad interpreter: No such file or directory看到这个错误我竟然一时间想不到问题在哪,傻傻的再次确认了下 bash 确实在...

2018-12-19 04:42:29 2895

原创 使用命令行连接 wifi

使用命令行连接 wifi以前尝试过通过命令行连接 wifi,最后没有成功,已经是几年前的印象。继续尝试,我发现 iwconfig 不支持秘钥,只能用于连接开放的热点。下面是我在使用命令行连接 wifi 的时候遇到的问题及解决方法。RF-kill 控制无效报错如下:SIOCSIFFLAGS: Operation not possible due to RF-kill更详细的...

2018-12-17 20:30:51 2962

原创 删除文件名含有特殊字符的文件

删除文件名含有特殊字符的文件当你要删除含有特殊字符的文件名时,有以下几种情况:使用转义字符、引号rm -rf \~rm -rf '~'rm -rf "~"上述命令删除文件名为 ~ 的文件。如果直接删除,那么根目录中的所有文件都会丢失。这种方式能够适用于大多数情况,如果你不确定的话建议使用 -i ,以免造成严重的后果。注意上述命令成功达成任务的关键在于阻止 shell 进行路...

2018-12-16 11:31:32 3228

原创 windows 中 git-bash 中使用 find 的正则表达式选项

windows 中 git-bash 中使用 find 的正则表达式选项find 中能够指定 -regex 使用的正则表达式的类型,不指定类型时使用默认的 emacs 正则表达式语法。你可以通过指定 -regextype 来显示指定使用的正则表达式类型。有如下选择:[emacs|posix-awk|posix-basic|posix-egrep|posix-extended]使用 ema...

2018-12-15 15:37:25 1285

原创 c 语言结构体 padding 的问题

c 语言结构体 padding 的问题C 语言结构体中的每个成员都需要按照相应的大小进行内存对齐,编译器会在结构体成员之间插入 padding 字节来保证每一个成员都能够以对应的数据大小对齐。padding 区域的存储字节,对程序员来说是不可见的,对整个结构体的初始化赋值不会改变 padding 区域的值。请看下面的初始化代码: struct mystruct a = {0};它仅将 ...

2018-12-13 20:14:27 3582 2

原创 使用取模与累加制造一个环

使用取模与累加制造一个环最近在做一个 gui 项目,里面有很多切换模式的按钮,我为了测试需要在不同模式间循环切换。使用多个判断语句能够完成此项任务,但选择分支的增加降低了程序的性能,尽管这点性能对现代的处理器而言微不足道,可一次预测失败的负载却常常让人不能接受。基于以上原因,我使用模运算加查表法来完成模式的循环切换工作,避免了条件分支的使用。关键代码如下:char *hair_mode[...

2018-12-10 22:20:28 261

原创 使用 awk 生产表的两种不同方式

使用 awk 生产表的两种不同方式awk 可以用于解决重复性高的任务,核心在于使用 awk 来批量的生成需要的表。这里的表既可以是特定的格式设置,如图形界面中的 style ,也可以是代码或者其它。这里我以图形界面中的 style 为例。当我需要对多个功能不同,操作方式相同的 checkbutton 指定不同的 style 来完成各自不同的界面显示效果时,我可以使用 awk 来生成不同的 s...

2018-12-09 15:10:04 279

原创 嵌入式中 lst 文件的创建与调试价值

lst文件的创建与调试价值在使用 eclipse 进行嵌入式开发时,有时会遇到程序跳入异常服务程序的情况。这种情况一旦出现,往往让人有点无处着力的感觉。可如果你了解 lst 文件,那么在这种情况下它往往能起到关键的作用。lst 文件实际是使用 objdump 反汇编 elf 文件得到的输出文件,它拥有比 map 文件更详细的信息。如果你的程序中加入了调试信息,那么你可以在 lst 中看到每一条...

2018-12-08 13:25:44 3984

原创 返回一个栈中数据的技巧

返回一个栈中数据的技巧struct mystruct { int id; int current_status;};struct mystruct get_stat() { struct mystruct st; st.id = get_current_id(); st.current_status = get_current_status();...

2018-12-06 21:20:08 614 2

原创 sed 使用的注意事项

sed 使用的注意事项1.删除命令的注意事项sed 删除命令能够帮助我们更快的删除待删除的行。你可以通过指定行号的范围,类似于 1,2 这样的表达式来删除第一行与第二行。使用行号定址的方法灵活性不够,sed 还提供使用正则表达式匹配的方式来指定待删除的地址。下面是一个具体的示例:/{/,/}/d 上面的命令首先匹配包含 ‘{’ 的行,以该行作为第一个删除行,删除 ‘{’ 所在行到 ...

2018-12-03 21:36:51 278

config-ligth

个人裁剪的 debian10 4.19 内核 config 文件,主要针对 desktop 版本进行了裁剪,裁掉不使用的内核模块,便于编译替换与测试

2020-09-30

Linux操作实验报告

Linux基础命令

2016-06-30

Installing TeX fonts

Installing TeX fonts

2016-03-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除