Один из способов сделать это, если вы используете cvs или subversion, это иметь специальную строку идентификатора, отформатированную специально в вашем исходном файле.Затем добавьте хук предварительной фиксации в cvs или svn, который обновляет эту специальную переменную новой версией файла, когда изменение фиксируется.Затем, когда двоичный файл собран, вы можете использовать идент для извлечения этой информации.Например:
Добавьте что-то вроде этого в ваш cpp-файл:
static char fileid[] = "$Id: fname.cc,v 1.124 2010/07/21 06:38:45 author Exp $";
И, если запустить идент (который вы можете найти, установив rcs) в программе, должна показать информацию о файлах, которыев них есть строка идентификатора.
ident program
program:
$Id: fname.cc,v 1.124 2010/07/21 06:38:45 author Exp $
Примечание Как уже упоминалось в комментариях, эта техника архаична.Система управления исходным кодом автоматически меняет ваш исходный код, и это ужасно, и тот факт, что контроль версий улучшился со времен, когда cvs был единственным вариантом, означает, что вы можете найти лучший способ достижения тех же целей.