Prototype: readfile(filename, optional_maxbytes)

Return type: string

Description: Returns the first maxbytes bytes from file filename. maxbytes is optional, if specified, only the first maxbytes bytes are read from filename. When maxbytes is 0, inf or not specified, the whole file will be read (but see Notes below).

Arguments:

  • filename: string - File name - in the range: "?(/.*)
  • optional_maxbytes: int - Maximum number of bytes to read - in the range: 0,99999999999

Example:

Prepare:

code
echo alpha > /tmp/cfe_hostlist
echo beta >> /tmp/cfe_hostlist
echo gamma >> /tmp/cfe_hostlist

Run:

code
body common control
{
      bundlesequence => { "example" };
}

bundle agent example
{
  vars:

      "xxx"
      string => readfile( "/tmp/cfe_hostlist" , "5" );
  reports:
      "first 5 characters of /tmp/cfe_hostlist: $(xxx)";
}

Output:

code
R: first 5 characters of /tmp/cfe_hostlist: alpha

Notes:

  • On Windows, the file will be read in text mode, which means that CRLF line endings will be converted to LF line endings in the resulting variable. This can make the variable length shorter than the size of the file being read.

History:

  • Warnings about the size limit and the special 0 value were introduced in 3.6.0
  • 4095 bytes limitation removed in 3.6.3