From: Kostas G. <k.g...@at...> - 2011-02-24 02:48:21
|
On Wed, Feb 23, 2011 at 05:12:03PM -0800, Bernard Li wrote: > Hi Carlo: > > On Wed, Feb 23, 2011 at 9:42 AM, Bernard Li <be...@va...> wrote: > > > I tested under EL5 and EL6 and it was't able to get past the initial > > buffer size. I believe what I did was: > > Correction. It works on EL6, but not on EL5: > > [CentOS 5.5 x86_64 with kernel 2.6.18-194.32.1.el5] > > read(3, "2.6.18-194.32.1.", 16) = 16 > read(3, "", 16) = 0 > > [RHEL6b2 x86_64 with kernel 2.6.32-37.el6.x86_64] > > read(3, "2.6.32-37.el6.x8", 16) = 16 > read(3, "6_64\n", 16) = 5 > > The issue may be specific to files in /proc/sys, because I tried > reading /proc/stat on CentOS 5.5 and it worked fine. In any case the slurpfile resizable buffer doesn't really work :( slurpfile only resizes a buffer if it's NULL but this is the case only at the first call for a metric. char *bp=NULL; slurpfile(file, &bp, 32); ...next polling interval... /* the buffer isn't resibale any more since it isn't NULL */ slurpfile(file, &bp, 32); Kostas |