草庐IT

缓冲池

全部标签

php - 如何在 PHP/Python 中进行缓冲区溢出?

这是一个用c编写的例子:#include#includevoidbad(){printf("Ohshitreallybad~!\r\n");}voidfoo(){charoverme[4]="WOW";*(int*)(overme+8)=(int)bad;}intmain(){foo();} 最佳答案 Python和PHP像其他人建议的那样被解释的事实实际上并不是重点。关键是它们公开的几乎所有API和语言语义都经过严格的错误检查,因此不可能有可利用的未定义行为。即使你编译这些语言,它仍然是不可能的。这并不意味着您不能公开可以做任何事

python - 如何扩展pyserial的输入缓冲区大小

我想通过串口与手机通信。在向手机写入一些命令后,我使用ser.read(ser.inWaiting())来获取它的返回值,但我总是得到总共1020字节的字符,并且实际上,期望的返回应该超过50KB。我已经尝试设置ser.read(50000),但解释器会挂起。我如何扩展输入缓冲区以一次获得所有返回值? 最佳答案 如果您在Windows平台上运行您的代码,您只需在代码中添加一行。fromserialimportSerialser=Serial(port='COM1',baudrate=115200,timeout=1,writeTim

python - 给定字节缓冲区、数据类型、形状和步幅,如何创建 Numpy ndarray

我有一个缓冲区、数据类型、形状和步幅。我想创建一个重用缓冲区内存的Numpyndarray。有numpy.frombuffer它从缓冲区创建一维数组并重用内存。但是,我不确定我是否可以轻松安全地reshape它并设定步伐。有numpy.ndarrayconstructor它可以引用一个缓冲区,但我不确定它是否会重用内存或者是否会复制它(文档中不清楚)。那么,numpy.ndarray构造函数会做我想做的事吗?或者我可以用什么代替?好的,所以我现在想弄清楚numpy.ndarray构造函数到底在做什么。密码是here.它使用PyArray_BufferConverter来转换缓冲区参数。

python - 如何将当前缓冲区加载到 Emacs 中的 Python 解释器中?

我正在尝试使用emacs编辑和运行python程序(Ubuntu10.10上的emacs23和python2.6)。我将文件读入Emacs(C-x-C-f)我启动解释器(菜单Python-启动解释器,我还没有找到它的键盘快捷键)Emacs将框架拆分为两个窗口我将光标放在python文件中(C-xo)现在我想在下方窗口的Python解释器中运行上方窗口中的Python代码。其他地方有建议:C-cC-c,但这什么都不做C-c!,但是emacs说该命令未定义我已经安装了ropemacs(sudoapt-getinstallpython-ropemacs)但是这并没有改变任何东西。

python - 行缓冲串行输入

我有一个串行设备,我正试图从中读取输入。我向它发送了一个字符串“ID\r”,它返回了“IDXX\r”(其中\r是一个ASCII回车符,十六进制0x0d)。由于不再支持serial.readline上的eol选项,我使用TextIOWrapper从串行端口读取并一次返回一行。我的问题是,它不是一看到回车就返回我的字符串,而是一直等到我打开串行端口时设置的超时时间的两倍。我希望它在读取整行后立即返回字符串,因为我可能有数百条这样的命令要发送到设备,而且我不想每次都等待超时。如果我将超时设置为0,那么我根本不会得到任何输出(大概是因为我的脚本在设备有机会输出任何内容之前停止等待),如果我将超

python - Cython 说缓冲区类型只允许作为函数局部变量,即使对于 ndarray.copy()

我是Cython的新手,遇到了这段代码:importnumpyasnpcimportnumpyasnptestarray=np.arange(5)cdefnp.ndarray[np.int_t,ndim=1]testarray1=testarray.copy()cdefnp.ndarray[np.float_t,ndim=1]testarray2=testarray.astype(np.float)在编译期间,它说Buffertypesonlyallowedasfunctionlocalvariables。但是,我使用的是.copy()或.astype(),它返回的不是内存View,而

python - matplotlib 中的 R 风格数据轴缓冲区

R绘图会自动设置x和y限制,以在数据和轴之间留出一些空间。我想知道matplotlib是否有办法自动执行相同的操作。如果不是,是否有关于R如何设置其轴限制的好的公式或“经验法则”? 最佳答案 在matplotlib中,您可以通过设置margins来实现此目的importmatplotlib.pyplotaspltfig,ax=plt.subplots()ax.margins(0.04)data=range(1,11)ax.plot(data,'wo')plt.savefig('margins.png')但是,好像没有,有一个rc参数

【Linux】理解缓冲区

文章目录一.引入二.认识缓冲区1.为什么2.刷新策略3.在哪里三、理解缓冲区一.引入我们发现printf和fwrite(库函数)都输出了2次,而write只输出了一次(系统调用)。为什么呢?肯定和fork有关!C接口的函数被打印了两次系统接口前后只是打印了一次:和fork函数有关,fork会创建子进程。在创建子进程的时候,数据会被处理成两份,父子进程发生写时拷贝,我们进行printf调用数据的时候,数据写到显示器外设上,就不属于父进程了,数据没被写到显示器上,依旧属于父进程,而调用printf并不一定把数据刷到显示器上,没有被显示本质就是数据没有从内存到外设,所以这份没有被显示的数据依旧属于这

python - 更改 multiprocessing.Queue 中的缓冲区大小

所以我有一个系统,生产者和消费者通过无限大小的队列连接,但是如果消费者重复调用get直到抛出Empty异常,它不会清除队列。我相信这是因为一旦套接字缓冲区已满,消费者端队列中将对象序列化到套接字中的线程就会被阻塞,因此它会等待直到缓冲区有空间,但是,这是可能的消费者调用get“太快”,因此它认为队列是空的,而实际上另一端的线程有更多数据要发送,但不能足够快地序列化它以防止套接字对消费者来说是空的。我相信如果我可以更改底层套接字上的缓冲区大小(我是基于Windows的),这个问题就会得到缓解。据我所知,我需要做的是:importmultiprocessing.connectionsasc

python - 什么是适合 Python 的结构模块的缓冲区

在Python中,我通过将二进制文件读入字符串然后使用struct.unpack(...)来访问它。现在我想使用struct.pack_into(...)写入该字符串,但出现错误“无法将字符串用作可修改缓冲区”。什么是适合与struct模块一起使用的缓冲区? 最佳答案 如另一个答案所述,struct_pack可能是您需要和应该使用的全部。但是,类型为array的对象支持缓冲协议(protocol),可修改:>>>importarray,struct>>>a=array.array('c',''*1000)>>>c='a';i=1>>