草庐IT

buffer_size

全部标签

Python:os.stat().st_size 给出的值与 du 不同

我正在创建一个实用程序,它将遍历目录并获取所有目录的子目录和文件的大小并存储该值。但是,尺寸计算不正确。这是我的类,它自动递归遍历所有子目录:classdirectory:'''Classthatautomaticallytraversesdirectoriesandbuildsatreewithsizeinfo'''def__init__(self,path,parent=None):ifpath[-1]!='/':#Addtrailing/self.path=path+'/'else:self.path=pathself.size=4096self.parent=parentsel

c - valgrind 错误和 ucontext。为什么是 "Use of uninitialised value of size 8"?

我一直在努力理解为什么valgrind会为这个使用ucontexts的小测试程序提示“使用大小为8的未初始化值”。它基本上是一个创建“n_ucs”ucontext并切换它们“max_switch”次的程序。我理解“警告:客户端切换堆栈?”(这基本上就是程序的全部内容),但我无法真正理解所有“使用大小为8的未初始化值”如果Valgrind错误是误报,或者这个程序是否存在根本性错误,我想获得一些帮助。(我在使用相同机制的更大的程序中看到了很多,但我已将其提炼到最低限度以在此处发布)。感谢任何帮助。谢谢,jack#include#include#include#include#defineS

Linux/珀尔 : Additional output buffers other than STDOUT and STDERR?

出于好奇,是否可以在Perl脚本中创建、实例化或以其他方式访问除STDOUT和STDERR之外的其他输出缓冲区?用例是额外的输出以通过管道传输到文件或其他命令,例如./doublerainbow.pl3>full_on.txt4>all_the_way!.txt 最佳答案 当然。使用>&=模式的open命令允许您打开任意文件描述符上的文件句柄。#perl4fd.pl>file12>file23>file34>file45&=3';openNONSTDBAR,'>&=4';openNONSTDBAZ,';$echopppbbbttt>

c - 允许 size_t 请求但仅 ssize_t 结果的系统调用的基本原理?

考虑:ssize_twrite(intfd,constvoid*buf,size_tcount);必须对结果进行签名以说明错误等情况下的-1,因此是ssize_t。但是,当要求超过ssize_t的结果未定义时,为什么允许请求是无符号数(两倍大)?是否由于不检查计数参数的符号性而对内核进行了重大优化?还是别的? 最佳答案 根据thedocumentation对于ssize_twrite(intfildes,constvoid*buf,size_tnbyte)Ifthevalueofnbyteisgreaterthan{SSIZE_MA

linux 命令 xargs : maximum size of the arguments passed by it?

xargs似乎并没有一次传递所有参数,在手册中说xargs执行命令(默认为/bin/echo)一次或多次,我听说这样做的原因是xargs将传入的参数分成组,然后将它们逐组传递给命令。如果这是正确的,谁知道这个组的大小是如何确定的?谢谢 最佳答案 使用--show-limits参数。它将列出您系统上的现有限制。$xargs--show-limitsYourenvironmentvariablestakeup4108bytesPOSIXupperlimitonargumentlength(thissystem):2090996POSIX

c++ - Ubuntu 8.1 上的 g++-4.1 或其他软件无法找到 size_t

这在我身上发生过,但我不记得我是如何修复它的。我无法在新安装的Ubuntu上编译某些程序...我的header有问题。我试过g++-4.1和4.3都没有用。g++-g-frepo-DIZ_LINUX-I/usr/include/linux-I/usr/include-I/include-cqlisttest.cpp/usr/include/libio.h:332:error:‘size_t’doesnotnameatype/usr/include/libio.h:336:error:‘size_t’wasnotdeclaredinthisscope/usr/include/libio.

linux - 遇到错误 "*** glibc detected *** free(): invalid next size (fast)"

请参阅MSO问题Alonglistofpossibleduplicates— Cmemoryallocationandoverrunningbounds有关密切相关问题的信息。开发环境:CentOS4.7、Kdevelop3.1.1、gcc3.4.6我运行一个Java测试客户端,该客户端使用JNI加载C++共享库。我的应用程序中包含三个组件,Java客户端充当JNI包装器的C++共享库。(我将其称为“包装库”)包含业务对象的C++共享库。(我称之为“商业图书馆”)当我运行客户端时,我经常遇到错误,即***glibcdetected***free():invalidnextsize(fa

linux - 使用带有 du 的管道来计算标准输入的 "size"

我有一个程序,我在其中从文件加载文本,然后根据其中一个字段对其进行过滤。我感兴趣的是此过滤步骤后的数据大小。理想情况下,我可以这样做:awk'$2>=10'我可以只应用过滤器并将输出保存在某处,对其调用du,然后删除文件,但文件非常大,因此写入磁盘可能需要一段时间。认识到du代表“磁盘使用”,考虑到程序的工作方式,我怀疑我在问一些没有意义的问题。如果有其他常用实用程序可以执行此操作,请提出建议! 最佳答案 您可以将其通过管道传输到wc-c以计算通过管道的字节数。 关于linux-使用带有

linux - GNU 找到 : test for file size greater/smaller-equal a certain size

GNUfind有没有办法找到大小为>=的文件?或一定尺寸?我只找到了>,,==运营商,例如-size+1M,-size-1M,-size1M,分别。在this博客,作者建议多个组合-size参数如find.-typef-size+1M-size-2M.但是,这不适用于我的find(GNUfindutils)4.4.2。 最佳答案 由于运营商在逻辑上等同于not>(不大于),这2个运算符可以互换。在我们的示例中,要查找大小小于或等于1M的文件,您可以查找不大于1M的文件:-not-size+1M.同样的逻辑可以应用于>=使用not.

c - 为什么设备的 stat::st_size 为 0 但同时 lseek 正确定义了设备大小?

我注意到,当我使用open+lseek查询设备大小时,一切正常,但是当我stat设备时,我得到零而不是实际设备大小。该设备是干净的,没有任何文件系统,并且设备的第一个字节以一些文本开头,例如“1234567890ABC”。怎么了?代码:#include#includeboolGetFileSize(constchar*pPath,uint64_t&Size){pPath="/home/sw/.bashrc";pPath="/dev/sda";structstatbuffer;if(stat(pPath,&buffer)){printf("Failedtostatfile.Error:%