自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(205)
  • 资源 (22)
  • 收藏
  • 关注

原创 【解锁】传送门

目录Linenoise——C命令行处理工具Catch2——C++测试框架(Quick Start)Linenoise-NG(Linenoise Next Generation)——C++命令行处理工具Yarn——快速、可靠、安全的node包依赖管理工具Pandoc——Pandoc安装、使用、快速上手autopep8——python代码格式化工具flake8——python官方代码扫...

2020-02-11 18:33:52 1893

原创 【运维经】第0章——目录

开这个专栏目的是想把开发和运维的经验记录下来并分享给大家。专栏里面内容比较简单,主要是围绕一些能够提高工作效率的小技巧,小工具和非常实用的命令等。希望这些点滴的记录能够给你的工作增添些许色彩,让枯燥的日常工作变得更加有趣儿一些。本专栏尽量保持日更,如果由于特殊原因断更后续会尽量补更。

2020-02-02 11:00:58 676

原创 编译安装Fedora最新内核

以上是下载、编译和安装Fedora内核的基本步骤。如果您需要进行更高级的配置或调试,可以查看Fedora内核源代码中的文档或参考Fedora官方文档。在该页面中选择需要下载的内核版本,然后在页面下方找到相应的源代码包下载链接。下载的源代码是一个rpm包,需要解压才能得到内核源代码。首先需要确定您需要下载的内核版本。该命令将使用默认配置文件生成内核配置。该命令将使用所有可用的CPU核心并行编译内核。在编译内核之前,需要安装一些编译工具。该命令将安装内核模块和内核镜像,并将新内核添加到引导程序中。

2023-03-22 11:18:00 952 1

原创 核心系统国产平台迁移验证

信息技术应用创新,旨在实现信息技术领域的自主可控,保障国家信息安全。金融领域又是关系国家经济命脉的行业,而对核心交易系统的信息技术应用创新是交易所未来将要面临的重大挑战。为了推进国产化进程,选取核心交易系统的典型模块,实践了基于鲲鹏平台的迁移验证,在各技术栈迁移流程方法、性能调优、典型问题等方面,做了大量的探索与尝试。

2023-03-11 22:17:55 2028

原创 gdb查看汇编代码的例子

run注意:如果您使用的是 Intel 架构的处理器,可以在 gdb 中使用命令来切换汇编代码的格式为 Intel 格式。默认情况下,汇编代码是 AT&T 格式的。

2023-03-05 19:17:01 3486

原创 DTrace使用简易教程

DTrace是一种系统跟踪工具,它可以帮助您了解系统的运行情况和性能瓶颈。下面是使用DTrace的简单教程。

2023-03-03 20:02:35 868

原创 MySQL LOAD VS DM8 dmfldr

某业务系统从MySQL迁移至达梦后,有导入业务文件的功能使用MySQL的LOAD方式将csv文件导入到指定的表中。迁移到达梦后,该功能需要进行对应的调整(因为达梦没有LOAD功能),但达梦提供了dmfldr来实现快速的将文件装载到数据库的表中,从目前业务的需求上看,达梦的dmfldr是可以替代MySQL的LOAD功能。针对这个需求,本文使用一个demo来对比LOAD和dmfldr的使用与性能差异。

2023-01-13 16:18:26 626

原创 【与达梦同行】达梦驱动图谱

达梦提供了大部分主流开发语言的驱动接口,在我用使用过的国产数据库中对客户端驱动的支持应该算是非常不错的。本文主要介绍达梦的驱动开发,通过实际操作,从环境搭建到实践验证,介绍了达梦各种语言驱动的详细使用过程,由于篇幅原因,将演示代码提交到gitee仓库上供大家参考。

2022-12-17 15:30:40 949

原创 openGauss洗冤录 之 copy from

对于copy功能PostgreSQL从9.2.4到16devel是否有过优化?或者openGauss是否持续合并或优化PostgreSQL的copy功能,这方面我没有去考证过。单纯从测试结果上看,openGauss的copy性能要略逊于PostgreSQL。当然,可能是我水平有限,所以希望各位openGauss的专家、老师集思广益,还openGauss一个真实的COPY FROM文件导入性能。(大家可以回复优化方案,我这边去做验证)

2022-12-11 20:47:08 628

原创 测评报告:文件导入哪家强?

本文将针对文件导入功能,在MySQL、PostgreSQL、达梦8、LvorySQL、openGauss、OceanBase六款数据库进行了对比测试。测试过程中使用相同的硬件环境和操作系统,且各数据库使用安装时的默认参数。注意:由于Oracle没有提供ARM相关的安装介质,所以本次测试并未对比Oracle的sqlldr;所有被测数据库都未经过优化,全部使用默认参数;

2022-12-10 15:29:57 938

原创 OceanBase TableAPI实践案例(Rust)

相对与客户端,运行时会有一些问题,可能是版本相关的问题,应该可以很快解决。

2022-11-22 14:46:41 585

原创 OceanBase TableAPI实践案例(Java)

早在OceanBase 社区版 3.1.1中开放了一组新的 API 叫做 TableAPI,TableAPI 以 API而非 SQL 的方式提供了一种新的访问 OceanBase 数据的接口。它把 OceanBase 可靠和可扩展的分布式存储层能力直接提供给应用程序,提供了灵活(非关系模型)和轻量的数据访问接口(无连接状态),应用程序可以把 TableAPI 当做 key-value , Table-store , Hbase等多种数据模型的数据库来使用。

2022-11-17 08:28:37 784

原创 openGauss/MogDB高可用整理

主库为自己管理的每一个备库指定一个同步优先级(sync_priority) 与 同步状态(sync_state) 。**同步优先级(sync_priority)**表示备库在同步模式下的优先级,它是一个固定值。较小的值表示较高的优先级,而是一个特殊值,表示“异步模式”。备库优先级是一个有序列表,在主库配置参数 中依序给出。例如在以下配置中,和的优先级分别为1和2。**同步状态(sync_state)**是备库的状态,它因所有在列备库的运行状态及其优先级而异,以下是可能的状态:MogHA 是云和恩墨基于 M

2022-11-13 20:50:44 327

原创 TDSQL高可用整理

TDSQL PostgreSQL版采用分布式集群架构,如下图所示。该架构分布式无共享(share nothing)模式,节点之间相应独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转,各处理单元之间通过网络协议进行通信,并行处理和扩展能力更好,这也意味着只需要简单的x86服务器就可以部署TDSQL PostgreSQL版数据库集群。Coordinator:协调节点(简称CN),对外提供接口,负责数据的分发和查询规划,多个节点位置对等,每个节点都提供相同的数据库视图;

2022-11-12 10:42:17 1598

原创 PolarDB高可用整理

当一条查询请求在查询协调节点上被执行跨机并行查询时,该查询产生的执行计划会被分片路由至各个执行节点,每个执行节点将会执行各自的分片计划,并将分片的查询结果汇总至查询协调节点。可以称查询协调节点为QC(Query Coordinator)节点,称分片计划的执行节点为PX(Parallel Execution)节点。如上图所示,RO1为QC节点,它接收了一条查询输入请求,并将查询计划分片路由至RO2、RO3、RO4三个PX节点。

2022-11-12 10:41:05 372

原创 AnalyticDB PostgreSQL高可用整理

AnalyticDB PostgreSQL版基础版的Master和Segment节点均采用了单节点部署,架构图如下。图 1. 基础版架构图相比较下图中的高可用版,基础版取消了Master Node的副本Standby Node,以及Compute Node中Primary的副本Mirror。图 2. 高可用版架构图。

2022-11-12 10:38:43 410

原创 TiDB高可用整理

在内核设计上,TiDB 分布式数据库将整体架构拆分成了多个模块,各模块之间互相通信,组成完整的 TiDB 系统。

2022-11-12 10:36:26 278

原创 达梦高可用整理

DMDSC 集群是一个多实例、单数据库的系统。多个数据库实例可以同时访问、修改同 一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件,这些文件保存在共享存储上。每个节点有自己独立的联机日志和归档日志,其中联机日志保存在共享存储上,归档日志可以保存在本地存储上也可以保存在共享存储上。DMCSS 是 DM 集群同步服务的简称,是 DMDSC 集群应用的基础,使用 DMDSC 集群或者DMASM 集群

2022-11-11 13:44:56 1981

原创 MogDB高可用方案

主库为自己管理的每一个备库指定一个同步优先级(sync_priority) 与 同步状态(sync_state) 。**同步优先级(sync_priority)**表示备库在同步模式下的优先级,它是一个固定值。较小的值表示较高的优先级,而是一个特殊值,表示“异步模式”。备库优先级是一个有序列表,在主库配置参数 中依序给出。例如在以下配置中,和的优先级分别为1和2。**同步状态(sync_state)**是备库的状态,它因所有在列备库的运行状态及其优先级而异,以下是可能的状态:MogHA 是云和恩墨基于 M

2022-10-19 15:32:24 224

原创 OceanBase高可用方案

OceanBase 数据库参考传统数据库分区表的概念,把一张表格的数据划分成不同的分区(Partition)。在分布式环境下,为保证数据读写服务的高可用,OceanBase 数据库会把同一个分区的数据拷贝到多个机器。不同机器同一个分区的数据拷贝称为副本(Replica)。同一分区的多个副本使用 Paxos 一致性协议保证副本的强一致,每个分区和它的副本构成一个独立的 Paxos 组,其中一个分区为主分区(Leader),其它分区为备分区(Follower)。

2022-09-24 20:46:38 1815

原创 openGauss账本数据库,你不知道的那些事儿

本文将通过对比官方文档关于**“设置账本数据库”**中的几个章节,结合源码来说说文档中操作步骤背后的原理。官方文档账本数据库融合了区块链思想,将用户操作记录至两种历史表中:用户历史表和全局区块表。当用户创建防篡改用户表时,系统将自动为该表添加一个hash列来保存每行数据的hash摘要信息,同时在blockchain模式下会创建一张用户历史表来记录对应用户表中每条数据的变更行为;而用户对防篡改用户表的一次修改行为将记录至全局区块表中。

2022-09-20 09:54:52 760

原创 miniob源码 架构概览

整体架构是基于Reactor事件驱动的异步消息处理模型,使用线程池,通过配置文件编排stage链,完成SQL处理流水线。

2022-09-14 11:04:46 2312 3

原创 使用vscode编译、调试miniob源码

实际上编译和调试是两个过程,我更习惯只配置调试launch.json,而tasks.json的工作可以直接手动完成,也就是可以参考的步骤完成编译,然后直接设置可持续文件的路径进行调试。同样的道理,这种调试方法可以用到其他项目的源码调试中,比如之前调试PostgreSQL和openGauss都可以用这个方法。

2022-09-14 11:03:31 2649 9

原创 MogDB秘籍 之 乾坤大挪移

希望这篇文章能把PostgreSQL、openGauss和MogDB关于插件开发和迁移相关的问题能够尽量的讲清晰,需要结合之前的几篇(“postgresql自定义函数实现,通过contrib模块进行扩展”、“openGauss/MogDB调用C FUNCTION”、“openGauss/MogDB脚本源码浅析(2)—— gs_install_plugin/gs_install_plugin_local”)文章一起学习了解。

2022-09-14 10:56:42 651

原创 openGauss/MogDB脚本源码浅析(2)—— gs_install_plugin/gs_install_plugin_local

总的来说这两个工具还是比较好用的,代码实现也比较简单。了解原理之后可以根据几个关键路径手动安装,或者在遇到安装问题的时候可以通过本文的分析继续排查解决。

2022-09-14 10:55:16 602

原创 To enable updating the table, set REPLICA IDENTITY using ALTER TABLE.

原因是发布订阅的表没有主键,不能进行update和delete操作。

2022-09-02 15:59:09 1341

原创 MogDB逻辑解码与pg_recvlogical

逻辑复制/解码相对于物理复制更加灵活,也可以根据实际业务需要开发对应的逻辑解码插件,甚至可以当做ETL来使用。总的来说逻辑解码是对用户非常友好的接口。以上通过对MogDB逻辑复制、逻辑解码的原理和部分代码进行分析,利用pg_recvlogical和SQL演示逻辑解码的过程,希望对大家理解MogDB逻辑解码有所帮助。

2022-09-02 15:58:10 754

原创 MogDB 3.0.0 新特性——发布订阅

发布订阅基于逻辑复制实现,其中有一个或者更多订阅者订阅一个发布者节点上的一个或者更多发布。订阅者从它们所订阅的发布拉取数据。实现集群间的数据实时同步。

2022-09-02 15:56:54 721

原创 MogDB企业应用 之 Rust驱动

Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和类似C++,但是设计者想要在保证性能的同时提供更好的内存安全。Rust已经逐步开始进入企业应用和操作系统的内核开发,之前听过几次openEuler SIG组的双周会,一些内核模块已经或即将使用Rust进行开发,虽然一些现代的开发语言现在还很难撼动传统的C/C++ 地位。但是像go和Rust已经开始在一些领域里面崭露头角。go的目标是取代C,而Rust则号称是C++ 的最佳接班人。

2022-09-02 15:55:32 636

原创 PostgreSQL企业应用——Rust三剑客(pgx)

Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和类似C++,但是设计者想要在保证性能的同时提供更好的内存安全。Rust已经逐步开始进入企业应用和操作系统的内核开发,之前听过几次openEuler的双周会,一些内核模块已经或即将使用Rust进行开发,虽然一些现代的开发语言现在还很难撼动传统的C/C++ 地位。但是像go和Rust已经开始在一些领域里面崭露头角。go的目标是取代C,而Rust则号称是C++ 的最佳接班人。

2022-09-02 15:54:10 952

原创 MogDB企业应用 之 七种武器

如今江湖上最卷的门派,非国产数据库莫属。各位大侠们往往把精力放在拼内功(内核/架构)、拼身法(性能)、拼拳脚(功能/兼容性)、拼江湖地位(生态/社区)。然而好像并不怎么重视兵(武)器(接口/驱动/API),当然,可能我是搞C/C++出身,也许搞JAVA的兄弟并不会遇到这样的困惑,因为一套JDBC可以打遍天下。虽然市场占有率的头把交椅JAVA已经做了很多年,但随着各种开发语言的大行其道,现代企业的信息化系统中不太可能只使用单一的开发语言。因此闯荡江湖还是需要几把趁手的兵器!...

2022-08-16 12:01:16 385

原创 libpqxx (PostgreSQL C++ API)——安装使用

相对于ODBC和libpq接口libpqxx做了更高度的封装,但libpq使用的编译器版本和支持C++标准比较激进。从开发效率上应该比ODBC和libpq有较大提升,但性能方面有待于进一步的测试。

2022-08-16 11:59:28 5081

原创 postgresql 15源码浅析(5)—— pg_control

pg_control保存了4类信息,分别是postgres集簇的初始化信息、系统信息、checkpoint信息、recovery信息。多种服务端工具会对pg_control进行查看或者修改。本文从代码的角度梳理了对pg_control读写相关的代码,希望能对大家了解postgres控制文件有所帮助。...

2022-08-16 11:57:41 621

原创 MogDB/openGauss使用Golang接口

MogDB/openGauss使用Golang接口

2022-08-16 11:50:47 434

原创 postgresql 15源码浅析(4)—— Hello PostgreSQL 15

这期主要是想填个坑,在上期中留下了一个pg_reload_conf()处理流程,找到代码看了一下,发现这块只有寥寥几行,该函数就是向postmaster进程发了一个SIGHUP信号,后续流程就是上期中的信号“1”处理流程,但pg_reload_conf()是一个内建函数,那么内建函数的调用过程涉及sql的接收、解析、执行等等,这个包含了sql引擎的一部分流程,是比较核心的内容,现阶段我还没这个能力去把这部分讲清楚,所以先从简单的开始,先介绍如何写一个内建函数,通过一个内建函数例子来学习和梳理内建函数的实现过

2022-06-04 21:09:53 496

原创 postgresql 15源码浅析(3)—— 信号“1“的使命

这篇实际上是要说说配置文件的加载问题,有些标题党了。准确说是如何在线加载配置,用户通过向postgres进程发送信号SIGHUP触发服务端完成配置的刷新。这部分看下来代码还是有点多,挑选几段我认为比较重要的片段和大家一起学习一下。

2022-05-29 21:17:41 338

原创 postgres 15源码浅析(2)—— psql新功能\dconfig

摘要翻了一下PostgreSQL 15的release文档,发现psql也有了10余项的升级,一起来撸一下其中一项新的功能的代码——\dconfig.环境及代码环境我这里使用的是本机win11 的WSL ubuntu。代码代码用的是最新的master分支,应该和15beta差不多吧。psql代码结构psql的代码结构很简单,基本就是启动之后在MainLoop函数中等待接收处理命令行的字符输入(细节以后可以慢慢撸,今天主要看看\dconfig这个命令是如何处理),接收到命令后做简单

2022-05-25 18:54:58 265

原创 openGauss脚本源码浅析(1)—— simpleInstall

摘要在编译完成openGauss或者已download了openGauss的bin后,想要做简易安装,官方给的使用方法是使用simpleInstall。本文主要介绍simpleInstall的脚本的功能,来了解一下简易安装内部实现原理。openGauss简易安装postgres初始化数据库了解openGauss安装之前简单说一下postgres的安装过程,postgres没有提供安装脚本,但是初始化数据库集簇的命令很简单:initdb -D $PGDATA 会在指定的PGDATA目录下创建

2022-05-23 13:38:18 402

原创 postgresql 15源码浅析(1)—— postgres中的1号数据库

在创建数据库集簇后,该集簇中默认会包含三个系统数据库template1、template0和postgres,其中template0和postgres都是在初始化过程中从template1复制出来的。这个理论大家想必不是那么陌生,但是template1又是从哪里来的呢?带着这个问题,下文将从代码的角度探究postgres中1号数据库的由来。

2022-05-22 20:37:54 770

原创 使用objcopy和gdb迁移符号文件

使用objcopy和gdb迁移符号文件摘要我们日常工作中往往会遇到使用商业软件过程中出现一些异常crash掉或core dump之类的问题,此时可能需要在客户方调试问题,但往往客户方使用的release版本没有相关的debug信息,这时可能需要开发方提供对应版本的符号文件以便进行调试,下面介绍如何将对应版本的符号文件导出给客户方,以及客户方如何导入符号文件进行调试(前提是开发方需要确认代码安全级别,客户方需要具备一定的技术能力)。step 1 确认版本是双方沟通版本的过程,如果程序友好的话,获取

2022-05-19 09:23:43 301

TiDB工具——学习笔记

1. Dumpling 2. Lightning 3. Data Migration(DM) 4. Backup & Restore (BR) 5. Binlog 6. TiCDC

2022-02-26

PingCAP《TiDB中文手册》(2021.04.14)

TiDB是PingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理(HybridTransactionalandAnalyticalProcessing,HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时HTAP、云原生的分布式数据库、兼容MySQL5.7协议和MySQL生态等重要特性。目标是为用户提供一站式OLTP(OnlineTransactionalProcessing)、OLAP(OnlineAnalyticalProcessing)、HTAP解决方案。TiDB适合高可用、强一致要求较高、数据规模较大等各种应用场景。

2022-02-26

HCIA-openGauss V1.0 培训教材

学完本课程后,您将能够了解到数据库的发展及演进、数据库的分类和数据模型、数据库系统的组成,以及openGauss数据库等内容。 理解并掌握数据库的定义及技术发展史; 熟悉关系型数据库的架构演进; 了解关系型数据库的主要应用场景; 了解openGauss数据库的发展史、产品定位; 了解openGauss技术指标及基本功能。

2022-02-26

opengauss安装与使用

一、opengauss数据库安装: 二、通过SSH软件连接使用数据库: 三、通过jdbc连接使用数据库

2022-02-26

OGCA考试认证课程介绍

OGCA认证课程采用理论与实践相结合的方式,课程内容包含数据库系统概论、国产数据库发展业态、openGauss简介、运维管理基础、SQL基础及相关实验内容。课程难度由浅入深,将帮助学员循序渐进掌握openGauss相关知识。 OGCA课程大纲

2022-02-26

Opengauss事务管理系统分析

opengauss的事务处理系统一共有三层:顶层、中层、底层。 顶层可以理解为进入事务处理机制这个系统的一些函数; 中层可以理解为事务块的处理,这些事务块中包含了子事务块; 底层就是内核层,是以内核视角处理子事务块中的内容。 具体的事务处理系统可以说就是一个状态机,进入系统中之后函数先判断系统什么状态,再进行处理,然后以一个状态结束,然后接下来的事务以前一个事务结束的状态运行。

2022-02-13

The Rust Programming Language.pdf

by Steve Klabnik and Carol Nichols, with contributions from the Rust Community This version of the text assumes you’re using Rust 1.37.0 or later with edition="2018" in Cargo.toml of all projects to use Rust 2018 Edition idioms. See the “Installation” section of Chapter 1 to install or update Rust, and see the new Appendix E for information on editions.

2020-04-29

The Cargo Book.pdf

Cargo is the Rust package manager. Cargo downloads your Rust package’s dependencies,compiles your packages, makes distributable packages, and uploads them to crates.io, the Rust community’s package registry. You can contribute to this book on GitHub.

2020-04-29

PostgreSQL11.2-CN-v1.1.epub

PostgreSQL11.2-CN-v1.1中文文档。本书是PostgreSQL的官方文档。 它是PostgreSQL开发人员和其它志愿者与PostgreSQL的开发并行编写的。它描述了当前版本的PostgreSQL官方支持的所有功能。为了能够管理有关PostgreSQL的大量信息,本书被组织成了几个部分。每个部分都是针对不同层次的用户,或者说针对具有不同阶段PostgreSQL体验的用户:

2020-04-29

ctp密码修改工具——带源码,适合vn.py首次登陆修改密码使用

【vn.py】CTP首次登陆修改密码 之 接口调用法 c++量化 阅读约 7 分钟 编辑 背景 最近一直在玩vn.py,上一篇文章vn.py开发环境搭建(windows)介绍了如何搭建二次开发环境,解决了一些搭建环境过程中遇到的坑。那么接下来这篇文章将解决运行期间的第一个问题。 开始vn.py 1.环境部署完成之后,启动examples/vn_trader/run.py,弹出启动页面。具体搭建过程参考vn.py开发环境搭建(windows)。 image.png 2。连接CTP,点击系统->连接CTP,弹出连接界面。 image.png 3.介绍一下个字段 用户名:在simnow注册的用户名6位数字 密码:登录simnow使用的密码 经纪商代码:9999 交易服务器地址:180.168.146.187:10101 行情服务器地址:180.168.146.187:10111 产品名称:simnow_client_test 授权码:0000000000000000 16个0 4.获取你的用户名和密码 登录http://www.simnow.com.cn/,从右上角的注册账号开始操作,这里就不讲了,大家自己鼓捣吧。 问题来了 所有准备工作做好后,点击连接,这时左下角会显示日志。 image.png 如果你是第一次登陆,那么会提示CTP首次登陆需要修改密码,这也就是我们今天要解决的问题 试图解决 刚看到这个问题觉得没什么,修改一下密码就可以了,但是。。。。。 首先没有再vn.py上找到可以修改密码的地方,后来想了想,也正常人家只是策略平台,也不仅仅是给CTP用, 所以去注册的地方simnow官网找找吧,但是。。。。 很遗憾仍然没有找到,这里不得不吐槽一下simnow了。是不是应该给个改密码的地方? 据说可以使用市场上的交易应用修改密码,大家可以去试试。或者大家有更好的方法也可以回复留言。 开始撸它 好吧,那么我们用程序员的方式来解决这个问题吧。 1.在vnpy/api/ctp目录下可以看到完整ctp开发的api,包括库和头文件。哈哈,是不是会让你产生非分之想? 2.我们在ThostFtdcTraderApi.h中发现了我们想要的东西 ///用户口令更新请求 virtual int ReqUserPasswordUpdate(CThostFtdcUserPasswordUpdateField *pUserPasswordUpdate, int nRequestID) = 0; 3.找到ctp api文档在simnow官网上可以找到,我这里用的事《综合交易平台TraderAPI接口说明.pdf》 4.开始撸代码吧,我显示在linux开始撸,后来发现我的操作系统编译器版本太低,当然升级版本应该可以解决,但升级gcc,glibc还是相当耗时的。所以后来移植到了windows,但工程还是linux风格,使用cmake构建,好在现在vs对cmake支持的不错。 5.继续撸,先贴一段吧 #include "ctp_trade_handler.h" #include "INIReader.h" #include int main(int argc, char* argv[]) { string a; INIReader reader("../conf/ctp.ini"); if (reader.ParseError() != 0) { std::cout << "Can't load 'test.ini'\n"; return 1; } std::cout << reader.GetInteger("user","BrokerID",9999) << endl; ctp_trade_handle ctp; ctp.CreateFtdcTraderApi(); ctp.RegisterFront("tcp://180.168.146.187:10100"); ctp.init(); //CThostFtdcReqAuthenticateField reqAuthenticate = { 0 }; //strcpy(reqAuthenticate.AppID, "simnow_client_test"); //strcpy(reqAuthenticate.UserID, "158477"); //strcpy(reqAuthenticate.AuthCode, "0000000000000000"); //strcpy(reqAuthenticate.BrokerID, "9999"); //ctp.ReqAuthenticate(&reqAuthenticate, 1); CThostFtdcReqUserLoginField reqUserLogin = { 0 }; strcpy(reqUserLogin.BrokerID,"9999"); strcpy(reqUserLogin.UserID,"158477"); strcpy(reqUserLogin.Password,"qwe123"); ctp.ReqUserLogin(&reqUserLogin, 1); std::cout <> a; CThostFtdcUserPasswordUpdateField reqUserPasswordUpdate = { 0 }; strcpy(reqUserPasswordUpdate.BrokerID, "9999"); strcpy(reqUserPasswordUpdate.UserID, "158477"); strcpy(reqUserPasswordUpdate.OldPassword, "qwe123"); strcpy(reqUserPasswordUpdate.NewPassword, a.c_str()); ctp.ReqUserPasswordUpdate(&reqUserPasswordUpdate, 3); std::cin >> a; ctp.exit(); return 0; } 代码很简单,这里就不多说了。目前只是为了解决我修改密码的需求,后续还会不断完善。 如有需要可以自己取来撸,代码托管地址:https://github.com/FrankXMX/c... 欢迎watch和star 5.使用上就是填写好你的相关信息,编译运行,输入新密码。得到屏幕输出。 6.回到vn.py,使用新密码重新连接ctp。 大功告成!!!

2020-01-25

yii 中文 教程

yii框架教程 Yii 是一个基于组件、用于开发大型 Web 应用的高性能 PHP 框架。它将 Web 编程中的可重用性发挥到极致, 能够显著加速开发进程。Yii(读作“易”)代表简单(easy)、高效(efficient)、可扩展(extensible)

2015-05-03

occi 使用 源码 范例封装类

occi 使用 源码 范例封装类,学习使用oci,occi的一个例子。

2009-11-07

使用OCCI开发Oracle9i数据库应用程序

使用OCCI开发Oracle9i数据库应用程序

2009-11-07

c 函数速查工具 c函数字典

它是c程序员的字典,是c编程的必备工具!可以方便的查找到您想要使用的函数,并提供了函数使用的例子!

2009-05-12

C#系列教程(基础、简单、易学)

C#系列教程(基础、简单、易学) 简单的c#入门教程!!

2008-10-22

高级语言C++程序设计编程范例与精解

高级语言C++程序设计编程范例与精解:例子很经典面试笔试的可以看看!

2008-10-21

经典笔试面试题汇总(40页word文档有详细答案)

40页word文档的面试笔试题汇总,非常全面,答案详细!希望对参加知名公司应聘的朋友有些帮助!!!

2008-10-17

huffman编码

huffman编码合集,里面收录了各种数据结构的Huffman编码。

2007-09-29

边沿检测与提取,轮廓跟踪的图象算法

边沿检测与提取,<br/>轮廓跟踪的图象算法

2007-06-26

直方图修正和彩色变换源代码

直方图修正和彩色变换源代码<br/>VC++ 源代码!

2007-06-26

空空如也

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

TA关注的人

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