精通C语言
文章平均质量分 88
vspiders
天道酬勤~
展开
-
Linux Hook方法
linux hook是一个非常常见且成熟的技术,用户态Hook的方法有很多中,本次主要记录下LD_PRELOAD动态链接库劫持方法。 LD_PRELOAD是一个全局变量,linux程序在运行时会优先加载该路径变量下的动态链接库,因此我们只需要通过设置LD_PRELOAD加载我们编写的同名函数,后续的加载过程中就会忽略后面的同名函数,从而完成对系统库的劫持。 一般情况下linux动态加载库的顺序为LD_PRELOAD>LD_LIBRARY_PATH>/etc/ld.so.cache>/l原创 2021-09-13 14:46:20 · 1217 阅读 · 0 评论 -
Fortran与C混合编程(转自Ubuntu)
Fortran与C混合编程 由于 GNU 的 Fortran 和 C 语言二者的函数彼此可以直接相互调用,所以混合编程可以非常容易地实现。只要你足够仔细,确保函数调用时传递的参数类型正确,函数就可以在两种语言间来回调用,就像它们是同一种语言一样。 下表中列出了 Fortran 的数据类型和它们在 C 中对应的类型。这张表在大多数平台下是没问题的,但是或许会有例外的情况发生。在你打算传递转载 2016-10-11 13:24:51 · 1219 阅读 · 0 评论 -
c和fortran混编(基于GNU/Linux,转自 linzch)
网 上说要分c为主程序和fortran为主程序两种情况讨论,其实我觉得不用,只要你了解生成可执行文件的机制。这个机制就是:不论是单一语言模块之间的 链接还是不同语言之间的混合链接,本质目的都是要链接器能找到定义于其他模块中的符号,如果全部找到,则链接成功,生成可执行的二进制文件。 下面的内容比较基础,看烦了就跳过。 比如简单的一个c程序: /* main.c */转载 2016-10-11 13:27:32 · 2979 阅读 · 0 评论 -
第一次任务小计(一)
这次就先不上流程图,就一个小问题先记录以下。 关于C语言传参问题。 C语言是无法返回一个数组的,因为你想返回一个数组,只能返回该数组的首地址,但是你一个子函数里定义一个数组之后,当返回时该数组就会被自动释放,因此此时就得不到数组的值。这些东西在Python里就根本不用在意。 虽然返回数组是不行的,但是可以传递一个数组。 关于字符串数组类似char *a[2]={“123”,”abc”};这样原创 2016-10-05 09:48:05 · 268 阅读 · 0 评论 -
C语言编程时遇到的若干问题
还是基础不够扎实,有一些基本的问题都不是很清楚,这里记录一下,以备遗忘。1.关于sizeof与strlen如果变量是数组,那么调用sizeof的结果就是数组的大小,但是如果只是一个指针,那么他只是返回一个sizeof(类型)的值。而strlen是判断字符串的长度,所以一个数组的最后一位是strlen(s)。引用一下:一、sizeof sizeof(...)是运算符,在头文件中typedef为原创 2018-01-18 11:05:15 · 910 阅读 · 0 评论