<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[TS1130的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/TS1130</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; TS1130]]></copyright><item><title><![CDATA[centos7升级gcc版本]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/121383704</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/121383704</guid><author>TS1130</author><pubDate>Wed, 17 Nov 2021 17:43:12 +0800</pubDate><description><![CDATA[安装 devtoolset
yum install devtoolset-7-gcc.x86_64 devtoolset-7-gcc-c++.x86_64

切换到devtoolset-gcc
source /opt/rh/devtoolset-7/enable

版本查看
gcc -v

注：此方法只能临时有效，重启后失效需要重新切换，可将切换命令添加到centos开机启动
方法：修改/etc/rc.d/rc.local，在末行添加切换命令
参考：
gcc版本升级
https://www.cnblogs.]]></description><category></category></item><item><title><![CDATA[MySQL的字符集和校对规则]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/117370015</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/117370015</guid><author>TS1130</author><pubDate>Fri, 28 May 2021 18:00:12 +0800</pubDate><description><![CDATA[MySQL字符集及校对规则的理解
Mysql中的校对规则究竟是怎么一回事
字符集：对文字的编码方式
校对规则：判断一段文字是否相等的比较方式
字符集特点：
　　①字符编码方式是用一个或多个字节表示字符集中的一个字符
　　②每种字符集都有自己特有的编码方式，因此同一个字符，在不同字符集的编码方式下，会产生不同的二进制
校对规则特征：
　　①两个不同的字符集不能有相同的校对规则；
　　②每个字符集有一个默认校对规则；
　　③存在校对规则命名约定：以其相关的字符集名开始，中间包括一个语言名，并且以_ci（大小写不]]></description><category></category></item><item><title><![CDATA[virtualbox虚拟机配置------解决桥接网卡界面名称未指定问题]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/115551421</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/115551421</guid><author>TS1130</author><pubDate>Fri, 09 Apr 2021 15:19:21 +0800</pubDate><description><![CDATA[重点：
在相应网卡设置中安装Microsoft网络客户端，选服务–&gt;添加–&gt;Microsoft --&gt;Mircrosoft MAC Bridge–&gt;从磁盘安装
选择VBOX安装的目录，找到VirtualBox\drivers\network\netlwf\VBoxNetLwf.inf 添加
然后就正常了。
https://blog.youkuaiyun.com/py_method/article/details/104794949
虚拟机推荐配置
网卡一：Nat映射
网卡二：桥接网络
https]]></description><category></category></item><item><title><![CDATA[mysql数据同步]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/115473329</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/115473329</guid><author>TS1130</author><pubDate>Tue, 06 Apr 2021 22:48:59 +0800</pubDate><description><![CDATA[使用mysqldump
mysqldump -hremote_ip -uuser -p database | mysql -uuser -p database
使用条件 remoteip（要复制的数据库） 和本机必须能够互通
mysql 8.0的坑

权限分开，需要先创建用户再授予权限
解决：https://blog.youkuaiyun.com/qq_34416331/article/details/104198487
mysqldump 导出提示Couldn’t execute SELECT COLUMN_NAME]]></description><category></category></item><item><title><![CDATA[mysql查询相关]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/115249756</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/115249756</guid><author>TS1130</author><pubDate>Fri, 26 Mar 2021 16:34:41 +0800</pubDate><description><![CDATA[MySQL中查询表的总行数命令
select count() from t;
select count(id) from t;（id为主键)
select count(1) from t;
select count(某普通字段) from t;
show table status的rows字段
总结来说，四种常用查询方式的速度顺序为：count(字段)&lt;count(id)&lt;count(1)&lt;count()

...]]></description><category></category></item><item><title><![CDATA[python3 操作mysql踩坑]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/115215815</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/115215815</guid><author>TS1130</author><pubDate>Thu, 25 Mar 2021 18:54:26 +0800</pubDate><description><![CDATA[python3提示错误“ImportError: No module named ‘MySQLdb’”
解决：python2和python3在数据库模块支持这里存在区别，python2是mysqldb，而到了python3就变成pymysql，安装pymysql ：pip3 install PyMySQL
pymysql 报错：from . import connections # noqa: E402
原因：PyMySQL的最新版，不支持Python 2.7 和 3.5版本了
解决：不使用 Flask-M]]></description><category></category></item><item><title><![CDATA[Linux下程序cpu占用高排查思路]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/110007056</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/110007056</guid><author>TS1130</author><pubDate>Mon, 23 Nov 2020 20:40:07 +0800</pubDate><description><![CDATA[1、ps -e找到进程号
2、top -H -p 进程号，显示的列表的左侧PID为该进程的线程号。看哪个线程号对应的cup占用较高，记下线程号。
3、用pstack 线程号看系统调用信息。确定出对应的是哪个线程。
4、回到代码查找线程处理函数是不是没有sleep或者有死循环等。
另可通过starce命令：
https://www.jianshu.com/p/d6686cb72f68

...]]></description><category></category></item><item><title><![CDATA[服务端高并发分布式架构演进之路]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/110006806</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/110006806</guid><author>TS1130</author><pubDate>Mon, 23 Nov 2020 20:26:40 +0800</pubDate><description><![CDATA[https://segmentfault.com/a/1190000018626163

]]></description><category></category></item><item><title><![CDATA[内网穿透+ssh登录打造私人云服务器]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/109964339</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/109964339</guid><author>TS1130</author><pubDate>Sun, 22 Nov 2020 21:08:00 +0800</pubDate><description><![CDATA[本地linux服务器
natapp 将 服务器ip:22 映射到公网
使用公网 ssh远程登录 即可远程访问服务器


]]></description><category></category></item><item><title><![CDATA[gitbook使用记录]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/109731857</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/109731857</guid><author>TS1130</author><pubDate>Mon, 16 Nov 2020 22:39:16 +0800</pubDate><description><![CDATA[使用
GitBook 使用教程
常用命令

gitbook init 创建
gitbook serve 浏览器地址栏中输入 http://localhost:4000 便可预览书籍。
gitbook build 生成本地网页不开启服务器

不在支持本地跳转
原因
由于点击事件被js代码禁用，所以点击没有反应，但是如果右键，在新窗口/新标签页打开的话是可以跳转的
解决办法
找到js代码，并修改
找到项目目录gitbook
找到目录下的theme.js文件
找到下面的代码
将if(m)改成if(false)
M]]></description><category></category></item><item><title><![CDATA[linux 内核 - ioctl 函数]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/109184409</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/109184409</guid><author>TS1130</author><pubDate>Tue, 20 Oct 2020 16:58:21 +0800</pubDate><description><![CDATA[用于字符设备用户空间与内核空间消息的传递。
ioctl 是设备驱动程序中设备控制接口函数，一个字符设备驱动通常会实现设备打开、关闭、读、写等功能
_IO：       定义不带参数的 ioctl 命令
_IOW：      定义带写参数的 ioctl 命令（copy_from_user）
_IOR：      定义带读参数的ioctl命令（copy_to_user）
_IOWR：     定义带读写参数的 ioctl 命令
使用该函数一般需要3块：

包含 ioctl 命令及相关宏定义，可以理解为一份 “协]]></description><category></category></item><item><title><![CDATA[linux 内核 module_init 机制]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/107670646</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/107670646</guid><author>TS1130</author><pubDate>Wed, 29 Jul 2020 17:26:46 +0800</pubDate><description><![CDATA[linux moudle并不仅仅用于支持驱动的加载和卸载。
模块代码有两种运行方式，一是静态编译连接进内核，在系统启动过程中进行初始化；
一是编译成可动态加载的module，通过insmod动态加载重定位到内核。
这两种方式可以在Makefile中通过obj -y 或 obj -m 选项选择。
一旦可动态加载的模块目标(.ko)被加载重定位到内核，其作用域和静态链接的代码是完全等价的。
这种运行方式有如下优点：
1. 可根据系统需要动态加载模块，以扩充内核功能。不需要时将其卸载，以释放内存空间。
2. 当需]]></description><category></category></item><item><title><![CDATA[C/C++  计算函数运行时间]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/106950170</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/106950170</guid><author>TS1130</author><pubDate>Wed, 24 Jun 2020 19:47:12 +0800</pubDate><description><![CDATA[clock()是C/C++中的计时函数，而与其相关的数据类型是clock_t;  头文件：time.h/ctime
在C/C++中，还定义了一个常量CLOCKS_PER_SEC，它用来表示一秒钟会有多少个时钟计时单元，其定义如下：
   #define    CLOCKS_PER_SEC      ((clock_t)1000)

#include “stdio.h”    
#include “stdlib.h”    
#include “time.h”    
int main( void )    ]]></description><category></category></item><item><title><![CDATA[缺少xxx.so.5解决办法]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/106950086</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/106950086</guid><author>TS1130</author><pubDate>Wed, 24 Jun 2020 19:37:50 +0800</pubDate><description><![CDATA[建立软件链接
ln -s 源文件 目标文件
ln -s /lib/libncurses.so.5 /usr/lib/libtinfo.so.5
也可能缺少对应平台的库，如程序是32位机编译，在64位机运行会报错，这时可以下载对应的32位库文件并建立软连接
参考文章：https://blog.youkuaiyun.com/smile_shaco/article/details/53693957

...]]></description><category></category></item><item><title><![CDATA[uint64_t 兼容64位、32位编译器]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/106949645</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/106949645</guid><author>TS1130</author><pubDate>Wed, 24 Jun 2020 18:48:20 +0800</pubDate><description><![CDATA[#include &lt;inttypes.h&gt;  
printf("%" PRId64 "\n", value);  

这是一种跨平台的书写方式，主要是为了同时支持32位和64位操作系统。PRId64表示64位整数，在32位系统中表示long long int，在64位系统中表示long int。相当于：
printf("%" "ld" "\n", value);  //64bit OS
printf("%" "lld" "\n", value);  //32bit OS

或者
printf("]]></description><category></category></item><item><title><![CDATA[相互引用的结构体定义]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/106857080</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/106857080</guid><author>TS1130</author><pubDate>Fri, 19 Jun 2020 15:28:30 +0800</pubDate><description><![CDATA[样例1（正确样例）：
typedef struct tagTest_B TEST_B_S;

typedef struct tagTest_A
{
TEST_B_S *pstB;
} TEST_A_S;

struct tagTest_B
{
TEST_A_S *pstA;
};

样例二：
struct B;
typedef struct A
{
     struct B *p;
     int a;
     int b;
}AAA;

typedef struct B
{
    struct A]]></description><category></category></item><item><title><![CDATA[关于虚拟内存、驻留内存与共享内存——virt res shr之间的关系 - linux]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/102496320</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/102496320</guid><author>TS1130</author><pubDate>Fri, 11 Oct 2019 10:40:05 +0800</pubDate><description><![CDATA[剖析top命令显示的VIRT RES SHR值：https://www.cnblogs.com/xuxm2007/archive/2012/06/05/2536294.html
理解virt res shr之间的关系 - linux：https://www.orchome.com/298
Linux 执行top命令各个参数VIRT,RES,SHR,DATA含义理解：https://blog.yoo...]]></description><category></category></item><item><title><![CDATA[Interface ('VirtualBox Host-Only Ethernet Adapter') is not a Host-Only]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/102475815</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/102475815</guid><author>TS1130</author><pubDate>Thu, 10 Oct 2019 10:18:49 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/u013480675/article/details/80402662

]]></description><category></category></item><item><title><![CDATA[Linux C 程序执行 shell 命令并获取返回结果]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/102403215</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/102403215</guid><author>TS1130</author><pubDate>Tue, 08 Oct 2019 18:45:33 +0800</pubDate><description><![CDATA[#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;errno.h&gt;

int main(int argc,char*argv[])
{
    FILE *fstream = NULL;
    char buff[1024], command_buf[1024];
    memset(buff, 0, size...]]></description><category></category></item><item><title><![CDATA[循环链表]]></title><link>https://blog.youkuaiyun.com/TS1130/article/details/100833277</link><guid>https://blog.youkuaiyun.com/TS1130/article/details/100833277</guid><author>TS1130</author><pubDate>Sat, 14 Sep 2019 19:00:24 +0800</pubDate><description><![CDATA[#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;malloc.h&gt;
#include &lt;stdbool.h&gt;

typedef struct DuLNode {
    int data;
    struct DuLNode *prior;
    struct DuLNode *next;
} D...]]></description><category></category></item></channel></rss>