This question already has an answer here:

ls -l /bin/true shows it being 27168 bytes in size, whereas a c program that just returns 0 is much smaller. Also, running objdump -d /bin/true gives a huge assembly program with many system calls. Why is all this needed for a program that just "does nothing successfully"?

marked as duplicate by Mr Shunz, jimmij, Jeff Schaller, roaima, Jesse_b Feb 8 at 14:33

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

migrated from stackoverflow.com Nov 2 '16 at 13:01

This question came from our site for professional and enthusiast programmers.


Because apart from returning 0 it also handles help and version options, plus it contains some comments inside.

You can figure it by yourself by cloning the sources from Github, and looking at the content of coreutils/src/true.c.