c
adlatereturn
自己竟然不存在
展开
-
build my own sqlite
多级缓存b树缓存未击中原创 2020-11-10 14:45:05 · 212 阅读 · 0 评论 -
mychatroom聊天室坑点简要分析
需求[服务器日志]emm,这个我就直接把服务器标准输出和错误重定向到文件里,由于函数太多,并没有在每个函数都去打印一句。主要要设置无缓冲 setbuf(stdout,NULL); setbuf(stderr,NULL);主服务器流程main注册服务器日志初始化套接字,epoll收取客户消息主客户端流程mainB初始化套接字登录注册退出找回密码 重新设置密码欢迎界面...原创 2020-07-27 17:56:23 · 415 阅读 · 0 评论 -
c-mysql(常用)
MySQL C API 使用(基本函数)了解了以上基础知识,去包装一些函数用来给c使用accept_mysql 用来连接数据库MYSQL accept_mysql(){ MYSQL mysql; if(NULL==mysql_init(&mysql)){ err_sys("mysql_init err",__LINE__); } if(mysql_library_init(0,NULL,NULL)!=0){ err_sy原创 2020-07-11 15:22:11 · 184 阅读 · 0 评论 -
数据结构:AVL平衡树(c版本)
AVL树呢,是平衡树中一个非常经典的例子。因为普通的查找树在插入和删除的过程有可能会产生树的一端子树高度比另一边大很多的情况,也就是所谓的退化为链表(查找是一个一个节点去找),降低了查找的效率。AVL平衡树通过一系列旋转的方式让左子树和右子树的高度相差不大(<=1),这样搜索的效率将会维持在较好的水平。方法就是当插入一个节点之后,更新父节点的高度,判断父节点的左右子树高度差是否为2,若是,进行相应旋转操作(4种)来降低左右子树高度差。若不是,判断父节点的父的左右子树高度差是否为2,以此类推,直到原创 2020-06-19 00:10:16 · 213 阅读 · 0 评论 -
strcpy 一个二进程文件的字节会怎样?
展示一下二进制文件内部是什么:本质上就是一个个字符。通过一定的文件格式,标准(我觉得就像一些程序)写入到文件中,我们可以通过系统软件去解读它(就像序列化和反序列化)可执行文件ELF格式(至于ELF究竟是什么,去翻《程序员的自我修养》吧,书上极其详细,而我觉得我这部分看过来却只是一知半解)图片:pdf视频:mp4int fd=open("a.txt",O_RDONLY);int fd2=open("b.txt",O_WRONLY|O_APPEND);read(fd,buf,BUFSIZ原创 2020-05-22 23:54:39 · 220 阅读 · 0 评论 -
函数参数中的多级指针
今天被几个段错误,栈溢出,free不正确的指针的错误搞得精力憔悴。之前对于多级指针+函数运用始终有点迷糊,今天果真栽这好几个跟头。这里呢就是想从mysql中提取出几个具有相同条件的数据,int mysqlGetMsgByUid(MYSQL mysql,int uid,mysqlMsg**mMsgList,int *mNum){ int i=0; int ret; unsigned int num_fields,num_rows; MYSQL mysql_tem原创 2020-05-16 23:38:04 · 282 阅读 · 0 评论 -
my_shell实现和分析
上个月初的myshell实现让人大费脑筋,在字符串处理和多重管道上出了不少差错,但好在最后还是实现了要求的功能。真的太懒了,把博客拖到现在~需求一个一个分析吧实现管道 |这个的意思就是想要你把一个命令的输出当作输入交给后面一个命令。如ls -l | grep “a” |wc -c就是把ls -l的输出结果交给grep 处理,grep的处理结果交给wc处理。解决方案:dup2(fd,0)重定...原创 2020-05-10 23:39:21 · 868 阅读 · 0 评论 -
c语言版本线程池学习和分析
线程池,在我看来就是一个 线程链表,接着我们通过任务链表(其实应该是队列)在上面分配一些任务函数。在实际应用中,线程池可以和网络服务器等高并发的程序结合起来实现异步操作。以下代码学习自线程池核心结构typedef struct my_pthread_t{ pthread_t *_pthread; //线程号 bool state; //是否已经进入等待状态}m...原创 2020-04-28 00:43:21 · 237 阅读 · 0 评论 -
UNIX学习笔记(1)
应该之后开始每天记录一点,不然这些笔记过段时间都不知道放哪了。fork 和vfork 的区别在于vfork子进程共享父进程地址空间,子进程先执行,这意味着变量是共享的,子进程一边改变,父进程的变量的值也会受到影响。俩进程在写同一个文件如果使用open(O_APPEND),write的系统调用的时候,父进程和子进程的调用次序不一定,写入文件中是交替的(但不会覆盖),如果使用的是fopen(“a...原创 2020-04-17 19:22:54 · 158 阅读 · 0 评论 -
linux下c语言用execl使用vim 打开一个文件,出现了神奇的读错误的解答
我认为使用execl函数可以去使用vim。但是却出现了神奇的读错误,整个终端崩了。#include<stdio.h>#include<stdlib.h>#include<string.h>#include<fcntl.h>#include<unistd.h>int main(){ pid_t pid; ...原创 2020-04-11 15:03:11 · 364 阅读 · 1 评论 -
linux下可以帮你把头文件和main函数写好的mytouch
来写个丑丑的c和c++混合的 mytouch有的时候我们想要执行touch自动帮我们生成一个c文件包含我们想要的头文件,但是我们会发现linux下touch出的文件都是空的。当时看到苹果系统下打开一个空的c文件就会给你自动写好 如下形式的c初始程序。#include<stdio.h>int main(int argc,char**argv){ return 0;}那我们...原创 2020-04-03 23:25:30 · 281 阅读 · 1 评论 -
linux网络编程学习epoll模型分析(最简单那种哦!!!)
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <errno.h>#include <str...原创 2020-03-25 21:50:17 · 153 阅读 · 0 评论 -
linux下如何把一个自己写的命令(如ls)在任意文件夹下执行
我们需要把这个可执行文件所在目录加入PATH环境变量中。1sudo vim/etc/profile 加入一行:export PATH=$PATH:/脚本目录/再记得source 加载一下profile用这种有一点点小问题:命令行的东西的颜色全消失了2sudo vim /etc/environment ,将目录加到PATH后面。我使用了这种再记得source 加载一下profi...原创 2020-03-14 17:40:16 · 1399 阅读 · 0 评论