Articles of 缓冲区

如何在vim的ex模式下从缓冲区中粘贴?

我在从文件复制某些文本,然后将其复制到一个新的拆分窗口有问题。 3yy |新| P 在命令模式下工作 当我按下时 复制工作后在分割窗口中input“p”

Linux UDP接收缓冲区的最大大小

Linux UDP接收缓冲区的最大大小是多less? 我认为这只受可用内存的限制,但是当我设置时 5GB的rmem_max: echo 5000000000 > /proc/sys/net/core/rmem_max 和4GB的实际套接字缓冲区(在Erlang): gen_udp:listen(Port, [{recbuf, 4000000000}]) 当我测量缓冲区利用率时,它显示: # netstat -u6anp | grep 5050 udp6 1409995136 0 :::5050 :::* 13483/beam.smp 我不能超过这个1.4GB。 对于较小的缓冲区大小,例如500MB,实际的缓冲区大小与configuration的值相匹配。 我的系统是Debian 6.0,机器有50GB RAM可用。

如何parsing通过/ proc文件传递给内核模块的大量数据?

编辑:我已经findseq_file ,可以轻松地从内核写入大量的数据到用户空间。 我正在寻找的是相反的; 一个API,便于从用户空间读取大量数据(多个页面)。 编辑2 :我正在执行一个<stdio.h>的端口作为内核模块,能够打开类似于FILE的/proc (以及后来的其他虚拟文件系统),并处理类似于<stdio.h>input和输出<stdio.h> 。 你可以在这里find项目。 我发现很多关于内核如何将大量数据写入/ proc(用于用户空间程序)的问题,但是却没有其他办法。 让我详细说明一下: 这个问题基本上是关于input被标记的algorithm(例如int或者int和string的混合等), 假设数据可能在多个缓冲区之间被破坏 。 例如,想象下面的数据被发送到内核模块: 12345678 81234567 78123456 67812345 5678 1234 45678123 3456 7812 23456781 为了这个例子,我们假设Linux提供/ proc处理程序的页面大小是20个字节(相对于真实的4KB)。 从/ proc(在内核模块中)读取数据的函数会看到这样的数据: call 1: "12345678 81234567 78" call 2: "123456 67812345 5678" call 3: " 1234 45678123 3456 " call 4: "7812 23456781" 正如你所看到的,当第一次调用78时,它不应该被处理,直到下一个帧才能决定78是一个整数还是一个帧之间的一个剪切。 现在我发现seq_file显然只是在内核想要写数据给用户而不是读 (或者可能是HOWTO被写成可怕的)的时候。 我做了什么 […]

Linux上文件的默认缓冲区大小

该文档指出,缓冲的默认值是: If omitted, the system default is used 。 我目前在Red Hat Linux 6上,但是我无法弄清楚为系统设置的默认缓冲。 任何人都可以请指导我如何确定一个系统的缓冲?

在Linux中指定运行时的UDP接收缓冲区大小

在Linux中,可以使用以下命令为networking数据包指定系统的默认接收缓冲区大小,比如UDP: sysctl -w net.core.rmem_max=<value> sysctl -w net.core.rmem_default=<value> 但是我想知道,是否有可能通过在运行时指定每个UDP套接字的接收缓冲区大小来使应用程序(比如说c )覆盖系统的默认值?

是否有附加到标准输出的缓冲区大小?

我试图find一些有关Windows上stdout的数据限制的信息。 我似乎无法findMSDN上的信息。 有多less数据可以写入标准输出有限制? 如果是这样,如果达到限制,会发生什么? 数据丢失了吗? 如果stdout被redirect(例如,通过从.Net启动进程并使用ProcessStartInfo.RedirectStandardOutput属性),那么对于可以写入多less数据有什么影响? 当我从调用过程的stdoutstream中读取时,是否会影响限制? 这些限制是否与命名pipe道有关?

Windows控制台程序stdout在使用pipe道redirect时被缓冲

我有一个长期运行的服务器程序(比如程序A),它是用QT / c ++编写的。 该程序是不是很稳定,所以我决定写一个python脚本来重新启动它,如果它崩溃。 问题是程序可能开始失败(如果我给它一个使用中的端口),打印错误,然后挂在那里没有退出,所以我必须监视程序的标准输出,并在失败的启动时杀死它。 这是我的最终代码(呃,其实这是好的,你可以忽略它): self.subp = subprocess.Popen( r'.\A.exe -server %d' % portnum, stdout=subprocess.PIPE, bufsize=1) for line in iter(self.subp.stdout.readline, ''): print(line, end='') 但我发现我不能从subprocess的标准输出读取任何东西,readline方法只是阻止那里,如果我杀了一个进程,python脚本只是退出没有任何输出。 在一开始,我认为这是一个subprocess模块的问题,但经过一些testing,我发现它不是。 如果我用一些其他的Windows控制台程序replaceA.exe命令行,ping -t例如,一切工作正常。 所以我认为这可能是A程序的问题。 幸运的是,我有A的源代码,这里是一个输出处理: printf("Server is starting on port %u\n", Config.ServerPort); if(server->listen()) printf("Starting successfully\n"); else printf("Starting failed!\n"); 经过一些search,我添加fflush(stdout); 到这段代码的末尾,重build程序,现在它工作 所以我的问题是,我还是不明白,原来的A程序代码有什么问题? 不用强制刷新,它可以在程序启动后立即在Windows控制台中正确打印这些string。 为什么在输出上使用pipe道时输出缓冲? 我在标准c实现读取,输出将自动刷新换行,但为什么不在我的情况? 这是一个Windows的问题,或编译器的问题? A程序是用QT / C ++编译的,QT版本是4.7.4(x32),C ++编译器是用QT(GCC […]

Powershell清除主机替代保存缓冲区

我想像Clear-Host这样的东西,但想要回滚。 到目前为止,我所拥有的基本上都是添加新行,直到屏幕清晰。 虽然当我这样做时,光标开始写在页面的底部(如期待 – 虽然不希望)。 我希望能够从页面的顶部开始写作(对于菜单等等,这是很自然的事情) 这是打印新行的dynamic计数的代码: do {Write-Host ""; $i++} while ($i -ne $Host.UI.RawUI.WindowSize.Height) 我确实看到了一些关于Transcript模块的内容,但并不希望这样做。 提前致谢。

在Windows屏幕上渲染缓冲区

我正在寻找一种方法来渲染一个字符缓冲区的窗口的内容区域。 这只是伪造的,但意在展示我真正想要做的事情: char buffer[300][200][3]; // 300px x 200px x RGB bytes // … render stuff into buffer FancyWindowsFunctionToRenderBufferOnWindow(my_hwnd, buffer, 300, 200, offset_x, offset_y); 有没有办法做类似的事情?

C Windows缓冲区大小

在Windows让我说我使用recv函数从套接字接收数据。 我很好奇最佳缓冲区有多大? 我可以使它成为1024字节,或者我可以使它成为51200字节或更大。 我想知道哪一个会更好的performance。 这不仅适用于recv函数,让我说读一个大的文本文件,我想要一个非常大的缓冲区,或更小的缓冲区?