Error: Package: postgresql12-devel-12.15-1PGDG.rhel7.x86_64 (pgdg12)
Requires: llvm-toolset-7-clang >= 4.0.1
解决
yum install centos-release-scl-rh
再次进行安装
### 2.开始
#### 2.1 编写C语言函数
要严格按照文档的说明进行编写,创建一个新的文件,例如 `func.c`,并添加以下内容:
#include “postgres.h”
#include “fmgr.h”
PG_MODULE_MAGIC;
PG_FUNCTION_INFO_V1(add_one);
Datum
add_one(PG_FUNCTION_ARGS)
{
int32 arg = PG_GETARG_INT32(0);
PG_RETURN_INT32(arg + 1);
}
1. `#include "postgres.h"`:这是一个预处理指令,用于包含 PostgreSQL 的核心头文件,以便在代码中使用 PostgreSQL 的数据类型、宏和函数。
2. `#include "fmgr.h"`:这是一个预处理指令,用于包含 PostgreSQL 函数管理器的头文件,提供了函数定义和声明所需的宏。
3. `PG_MODULE_MAGIC`:这是一个宏,它用于标识模块的版本和兼容性信息。
4. `PG_FUNCTION_INFO_V1(add_one)`:这是一个宏,用于声明函数的元数据。在这里,它将函数名 `add_one` 与函数版本号 `V1` 关联起来。这样 PostgreSQL 就能够正确地识别和处理这个函数。
5. `Datum add_one(PG_FUNCTION_ARGS)`:这是函数的定义,使用 `Datum` 作为返回值类型。`PG_FUNCTION_ARGS` 是一个宏,它展开为一个结构体,包含了函数的参数和返回值信息。
6. `int32 arg = PG_GETARG_INT32(0)`:这是获取函数参数的值。`PG_GETARG_INT32(0)` 宏用于从参数列表中获取第一个参数,并将其转换为 `int32` 类型。这里将获取到的参数值存储在 `int32` 类型的变量 `arg` 中。
7. `PG_RETURN_INT32(arg + 1)`:这是函数的返回语句。它使用 `PG_RETURN_INT32` 宏将 `arg + 1` 的结果作为函数的返回值。在这里,函数将输入的整数参数加一后返回。
这段代码的功能很简单:将输入的整数参数加一并作为函数的返回值。
#### 2.2 编译和链接动态载入的函数
Linux环境,其他环境小伙伴儿们自行查看啊:
创建PIC的编译器标志是-fpic。创建一个共享库的编译器标志是-shared。
cc -fPIC -c name.c
cc -shared -o name.so name.o
实例使用 C 编译器将源代码编译为共享库,例如 `func.so`:
实例
cc -fPIC -Ipg\_config --includedir-server
-c funcs.c
cc -shared -o funcs.so funcs.o -Ipg\_config --includedir-server
-lm
pg_config --includedir-server 的地址
[root@tcloud ~]# pg_config --includedir-server
/usr/pgsql-12/include/server
3. 将共享库文件复制到 PostgreSQL 的共享库目录中:
cp funcs.so pg\_config --libdir
/.
pg_config --libdir 的地址
[root@tcloud ~]# pg_config --libdir
/usr/pgsql-12/lib
4. 在 PostgreSQL 中创建函数的定义:
CREATE FUNCTION add_one ( INTEGER ) RETURNS INTEGER AS ‘/usr/pgsql-12/lib/func’,
‘add_one’ LANGUAGE C STRICT;
现在,已经可以在 SQL 查询中使用 `add_one` 函数了,例如:
SELECT add_one(11);
本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。
最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。
最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。
![](https://img-blog.csdnimg.cn/img_convert/311903982dea1d8a5d2c98fc271b5b41.jpeg)
### 学习路线图
其中最为瞩目也是最为基础的就是网络安全学习路线图,这里我给大家分享一份打磨了3个月,已经更新到4.0版本的网络安全学习路线图。
相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。
![](https://img-blog.csdnimg.cn/img_convert/1ddfaf7dc5879b1120e31fafa1ad4dc7.jpeg)
#### 网络安全工具箱
当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份**我自己整理的网络安全入门工具以及使用教程和实战。**
![](https://img-blog.csdnimg.cn/img_convert/bcd1787ce996787388468bb227d8f959.jpeg)
#### 项目实战
最后就是项目实战,这里带来的是**SRC资料&HW资料**,毕竟实战是检验真理的唯一标准嘛~
![](https://img-blog.csdnimg.cn/img_convert/35fc46df24091ce3c9a5032a9919b755.jpeg)
#### 面试题
归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!
加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0