首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
buf专题
Linux驱动开发杂记(0x14) - 环形缓冲区circ_buf
/** 在内核<linux/circ_buf.h>中定义了关于环形缓冲区的相关变量。* 其中缓冲区的大小size必须定义成2的n次方,这样可以将取余运算转换成位与运算,* 提高计算机的处理速度。例如:x % size = x & (size - 1)。实际可用的空间为size-1,* 这样可以避免缓冲区为满时和为空时都满足head = tail。*/struct circ_buf {char
阅读更多...
达梦 执行查询语句时报[-544]:Out of sort buf space
达梦数据库有时执行SQL中有时报[-544]:Out of sort buf space, try to adjust SORT_BUF_GLOBAL_SIZE, SORT_BUF_SIZE, SORT_BLK_SIZE. 第一反应是这条语句占用排序区太大。但真实原因是前面执行的语句耗光了全局排序区,后面SQL任何小的排序操作都会报这个错误从而执行失败。下面是一个测试用例。参数SORT_FLAG
阅读更多...
将int数字存到char buf中
将int数字存到char buf中 例如: 将数字2018存到char buf[2]中 1、分析 首先2018有4个数字,而buf只有2个字节,那传统的赋值转换应该是不行了,那就要考虑用位的方式了,2018二进制为111 11100010 = 0x7e2 正好占两个字节(8位为一个字节),那果断用移位的方式来转存。 2、代码实现 #include <stdio.h> #inc
阅读更多...
灯下黑”挖出国内知名安全平台某BUF的CSRF漏洞
漏洞复现: 漏洞点在删除文章的地方,首先为了测试先发布一篇文章 发布之后我们可以查看文章,注意url中的一串数字,就是这篇文章的id,如下如: 这里的文章id是“271825”,首先抓一下删除文章的数据包: 可以看到这里是验证了token的,不过看这个token,一开始我是笑出声的,转念一想这可能是配置错了吧,但是这样的话也就导致了这个csrf漏洞了。
阅读更多...
lwip netbuf_ref: invalid buf“
netbuf_ref 申请空间失败 报错 lwip netbuf_ref: invalid buf" 解决办法就是lwipopt.h文件中定义宏 原来opt.h文件的定义是 #define MEMP_NUM_NETBUF 2 修改后 #define MEMP_NUM_NETBUF 6
阅读更多...
用C代码实现环形缓冲区(ring buf)
用C代码实现环形缓冲区(ring buf) 概述环境介绍launch.json(没改)tasks.json注意 代码ringbuf.cringbuf.hmain.c 测试说明工程代码下载 概述 因嵌入式项目需要,串口接收的数据有很高的周期性发送频率,原方式通过查询接收标志再接收会导致数据丢失和硬件buf溢出等问题,因此考虑开足够大的环形缓冲区(ring buf)实现,接收中断中
阅读更多...
c语言中栈和数组buf的生长方向
对于c语言中,栈是向上还是向下生长,一般由操作系统决定。一般是栈是向下生长,因为一旦是向下生长,最高地址确定之后,就不会发生溢出。但是不管是栈是向下生长还是向上生长,buf的生长的方向都是向上的,buf是数组首元素的地址,其是一个常量,是不能改变的,即不能执行buf++,但是可以执行buf+i (前提是buf是一个数组)。具体示意图如下:
阅读更多...
C语言如何执行buf中的代码
strcpy(szBuf, “stricmp(“1”,“2”);”); 这里的szBuf只是保存了字符串值而已,并不是可执行的代码,从代码到可执行的二进制指令需要编译,亦或者通过解释执行.需要调用C编译器或解释器. 若要直接执行Buffer里面的代码必须是二进制指令. 这里提供一种可直接执行题主给的stricmp的例子: x86 char szBuf[] = “\x8b\x44\x24\x04\x
阅读更多...
openssl3.2 - exp - buf to bio
文章目录 openssl3.2 - exp - buf to bio概述笔记bio_get_length调用端代码函数实现bio_to_buffer END openssl3.2 - exp - buf to bio 概述 不想让程序调用openssl API时, 有文件落地的动作. 如果程序有配置文件要用, 也是自己读文件到buffer, 然后转成BIO给openssl的相
阅读更多...
wayland(xdg_wm_base) + egl + opengles——dma_buf 作为纹理数据源(五)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、EGL dma_buf import 相关的数据结构和函数1. EGLImageKHR2. eglCreateImageKHR()3. glEGLImageTargetTexture2DOES() 二、egl 中 import dma_buf 作为纹理的代码实例1. egl_wayland_dmabu
阅读更多...
Linux进程间通信-杂项设备驱动buf共享的方式
1、前言 本文所介绍的内容主要是为了对cgi设置项管理项杂乱而优化的。本文中的实例是将设置项写入驱动中,支持多个进程共享。在开机初始化进入应用层=的时候需要把保存在/config/settings.txt文件中的设置项全部读出来,然后在写入到杂项设备驱动中,杂项设备中有一个全局数据buf用来保存这些设置项,这是初始化必须要做的。除此之外,当是首次使用的时候config/settings.txt文
阅读更多...
理解一维数组中 buf、buf[0]、buf[0]、buf 四个符号的含义
本文内容摘自《C语言内核深度解析》一书的深入学习数组部分。 以 int buf[100]={0} 为例,集中讨论 buf、buf[0]、&buf[0]、&buf 四个字符含义的内涵。 1、buf:有两层含义,一是数组名,sizeof(buf) 时就是数组名的含义;二是等价于 &buf[0],表示数组的第一个元素的首字节地址,是一个常量值。因此,既然是一个常量值,无论从哪层含义来使用,buf 都
阅读更多...
Nginx基本数据结构(三)——ngx_chain_t、ngx_buf_t
目录 ngx_chain_t相关操作API ngx_buf_t相关操作API 参考文献 ngx_chain_t Nginx的filter模块用来处理从别的filter和handler模块传递过来的数据。这个传递的过程是以一个链表(ngx_chain_t)的形式。而且数据可能会被多次传递。 struct ngx_chain_s{ngx_buf_t *buf;ngx_chain
阅读更多...
sk_buf, 再转载,太经典了 - 网络协议栈分析 - 草本植物
本文转自: http://www.360doc.com/content/09/0205/16/36491_2466152.shtml# sk_buff结构可能是linux网络代码中最重要的数据结构,它表示接收或发送数据包的包头信息。它在<include/linux/skbuff.h>中定义,并包含很多成员变量供网络代码中的各子系统使用。 这个结构在linux内核的发展过程中改动过很
阅读更多...
linux系统编程之管道(二):管道读写规则和Pipe Capacity、PIPE_BUF
一、当没有数据可读时 O_NONBLOCK disable:read调用阻塞,即进程暂停执行,一直等到有数据来到为止。 O_NONBLOCK enable:read调用返回-1,errno值为EAGAIN。 示例程序如下: /*************************************************************************> File Nam
阅读更多...
3、有BUF数组,从文件IN.TXT输入89,91 (自己添加60个数据,可以按补码输入),请找出>0和<0 的个数并分正数,负数显示,要求显示数据5个一行,并用原码屏幕显示和输出到文件OUT.TXT
题目描述 3、有BUF数组,从文件IN.TXT输入89,91 (自己添加60个数据,可以按补码输入),请找出>0和<0 的个数并分正数,负数显示,要求显示数据5个一行,并用原码屏幕显示和输出到文件OUT.TXT 参考程序 ASSUME CS:CODE,DS:DATADATA SEGMENTBUF DB 99,-98,97,-96,95,-94,93,92,91,90DB -89,-88
阅读更多...
自定义函数获取buf时snprintf中sizeof(buf)出现问题导致赋值不全
警告可能出现的问题: directive output truncated writing 16 bytes into a region of size 4 [-Wformat-truncation=] warning: argument to ‘sizeof’ in ‘snprintf’ call is the same expression as the destination; did y
阅读更多...