Как вы добавляете еще две строки в файл?
В большинстве текстовых редакторов операции выполняются примерно так:
fd = open(filename, read)
file_data = read(fd)
close(fd)
/* you edit your file, and save it */
unlink(filename)
fd = open(filename, write, create)
write(fd, file_data)
Файл отличается. (Проверьте это с помощью ls -li
; номер инода будет меняться почти для каждого текстового редактора.)
Если вы добавите к файлу журнала, используя перенаправление >>
вашей оболочки, оно будет работать точно так, как должно:
$ echo one >> test.log
$ echo two >> test.log
$ echo three >> test.log
$ ls -li test.log
671147 -rw-r--r-- 1 sarnold sarnold 14 2010-08-14 04:15 test.log
$ echo four >> test.log
$ ls -li test.log
671147 -rw-r--r-- 1 sarnold sarnold 19 2010-08-14 04:15 test.log
>>> log=open('test.log')
>>> log.tell()
0
>>> log.seek(0,2)
>>> log.tell()
19
$ echo five >> test.log
$ echo six >> test.log
>>> log.seek(0,2)
>>> log.tell()
28
Обратите внимание, что команда tail(1)
имеет параметр командной строки -F
для обработки случая, когда файл изменяется, но существует файл с таким же именем. (Отлично подходит для просмотра файлов журнала, которые могут периодически вращаться.)