Originally Posted by akhilbaai
I'm a bit curious about the internal data handling (spooling) of CUPS.
I've gone through the cupsd.c code and found pipes being implemented. Is spooling happening inside pipes or is it using a normal character buffer? What would be the maximum size of spooled data it can handle ?
Spooled data is in /var/spool/cups... but it can depend on what distribution is being used as I believe it is a configuration option.
The maximum size depends on the filesystem/partition size and system configuration. By default /var is part of root... thus it would be limited to the size of root, but it is up to the administrator, some like having /var on a separate partition/filesystem, others may chose to make only /var/spool separate, and other separate the mail handling from any other functions.
Pipes are used for interpreting/formatting the data... and the final output goes to a physical printer (or other similar device). Pipes can't be used for spooling (far too small, and only good for passing data from one process to another).