readproctitle reads data into the end of D, shifting D to the left to make room. This means that the most recent data is visible to process-listing tools such as ps(1) . readproctitle always leaves three dots at the left of D.
For example, if
readproctitle io errors: ....................
reads the data
fatal error xyz
warning abc
then its command-line arguments change to
readproctitle io errors: ...
xyz!warning abc!
with a newline character in place of each !. Process-listing tools typically show the newline character as ? or \n.
readproctitle exits when it reaches the end of input.
Beware that most implementations of ps(1) have small argument-length limits. These limits apply to the total length of readproctitle L D. I have not seen a system with a limit below 512 bytes.