![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 61
flurry_rain
这个作者很懒,什么都没留下…
展开
-
Linux C子线程传参的注意事项
背景linux C提供了pthread_create函数用来创建一个子线程,该函数的最后一个参数可以往子线程的函数中传入一个参数,示例如下:#include <stdio.h>#include <stdlib.h>#include <pthread.h>void *child_thread (void *args){ int *argptr = (int *) args; int arg = *argptr; printf ("Argument i原创 2022-03-08 17:36:41 · 1085 阅读 · 4 评论 -
linux C解析获取ko文件的模块名
前言在使用ko文件的时候,有时候可能会出现模块名与ko文件名不一致的情况,比如下面的例子,插入了一个 test.ko 的文件,但实际上文件使用的模块名不是 test 而是 hello:因此不能简单的直接把ko文件名当作模块名来使用,否则在卸载模块的时候可能会出现模块无法找到的问题解决方案ko文件的模块名会保存在 THIS_MODULE 模块对象(类型为 struct module )中,该对象作为 .gnu.linkonce.this_module 节存储在内核模块文件中。使用如下命令可获取该节原创 2022-01-22 18:41:20 · 1705 阅读 · 0 评论 -
Linux父子进程的一些常见问题
使用fork()函数可以创建一个子进程,这个函数的特殊之处在于,调用一次会返回两次,父进程一次子进程一次,返回值可能的取值如下:1)在父进程中,fork返回新创建子进程的进程ID;2)在子进程中,fork返回0;3)如果出现错误,fork返回一个负值;执行过fork后,子进程中的操作就与父进程无关了,父进程可以通过wait/waitpid函数来获取子进程的状态。父进程需要关注一下僵尸进程,通过signal函数监听SIGCHLD信号来调用wait/waitpid函数回收子进程是一种比较常用的解决原创 2022-01-05 17:52:52 · 488 阅读 · 0 评论 -
C语言回调函数和钩子函数
这篇博文讲得挺清楚的:钩子函数和回调函数的区别总结一下,就是:回调函数更多的是目的处理,而钩子函数更多的是过程监控个人感觉这两种函数的界限似乎并没有特别明显,我就遇到过回调函数和钩子函数的注册函数是同一个的情况、(回调函数没有作为调用函数参数传入),这两个的函数的区别,举个例子来说明一下我自己的理解吧:比如有个libagent.so库提供了一个代理功能,可以用来跟服务端做交互,然后这个库的日志输出想统一输出到调用这个库的主程序的日志目录下,也就是说,日志打印这个功能最好由主函数来提供实现,这种情况下原创 2021-12-30 20:58:19 · 1103 阅读 · 0 评论 -
linux C获取本地IP地址
参考连接https://cloud.tencent.com/developer/article/1177071https://stackoverflow.com/questions/49335001/get-local-ip-address-in-c我现在是需要建立反弹shell,要从远程设备反弹至本地设备,所以需要获取本地ip,当前我在本地已经跟远程设备上的某个服务建立了连接,因此,可以使用上面连接中介绍的getsocketname的方法获取到本地ip,核心代码如下:struct sockaddr原创 2021-12-28 20:01:01 · 2600 阅读 · 0 评论 -
正数、负数和补码
计算机中,正数、负数是怎么区分的呢,如何存放正数和负数?这里,就要用到补码这个概念了,先给出结论吧:正数和负数在计算机其实都是使用补码来存放的,并且在计算机中是没有减法运算的,减法实际上就是补码直接相加。正数和负数的补码补码是计算机存放数据之前对数据做了一种转换操作得到的,与补码相关的几个名词还有原码、反码:1、原码:字节的最高位为符号位,其余表示数值大小,最简单;2、反码:正数的反码和原码一样,负数的反码除最高位符号位外,其他位都取反;3、补码:在反码的基础上加1,这样可以方便计算机进行计算,可原创 2021-08-17 17:18:25 · 4844 阅读 · 0 评论 -
关于C语言printf函数中英文混杂时对齐的问题
格式化输出函数printf首先看一下printf函数支持的标记符号flag标识-在给定的字段宽度内左对齐,默认是右对齐+强制在结果之前显示加号或减号(+ 或 -),即正数前面会显示 + 号。默认情况下,只有负数前面会显示一个 - 号#与 o、x 或 X 说明符一起使用时,非零值前面会分别显示 0、0x 或 0X;与 e、E 和 f 一起使用时,会强制输出包含一个小数点,即使后边没有数字时也会显示小数点。默认情况下,如果后边没有数字时候,不会显示显示小数点。与 g 或原创 2021-08-05 15:58:22 · 1676 阅读 · 0 评论