Tag

C

2022年5月22日

windows 音量设置mic输入“级别”中的坑(UAC开发)

最近在搞uac设备,客户给提了个需求,要求windows设置麦克风输入音量时要不进行音量操作保持音量不变。我当时就想“我根本就没开volume功能啊,这不是windows系统操作的么?” 后来研究发现,还真没这么简单。 windows10可以支持(USB audio)uac2.0 uac1.0版本,但是2.0不支持vo

2021年6月1日

[linux]select实现非阻塞异步输入

最近要实现一个非阻塞输入的C代码,查到可以通过select函数来完成。 select用于同时监控多个fd,在io可读/写时返回。 正常来说,select是阻塞的,除非超时或者等待的fd内容发生变化。因此,我我们将select的超时时间设为0,便可以非阻塞。按照返回来判断当前监视的fd内容是否变化,从而根据这个返回进行相

2020年10月7日

[C]Debug命令

生成map文件(列出所有变量,函数所属的段及地址) gcc 1.c -Wl, -Map=out.map objdump -d 也可以 gdb可以通过调试打印相应的变量/函数 make VERBOSE=1 make all VERBOSE=1可以打印详细编译信息, size可以用来查看elf/.a/.so text/da

[Linux]优先级反转解释

2019年4月16日

[Linux]优先级反转解释

看到一张比较好的解释优先级反转的示意图如下: 当优先级比较低的C任务获取到信号量运行时,优先级为高的A任务因为条件触发需要执行,但是需要的信号量此时被c获得,所以只能等待。 CPU回到任务C继续运行,但是如果此时优先级为中的任务B因为条件出发需要执行,则CPU会切换到任务B,运行完成之后再回到任务C,一直到任务C运行结