Почему я получаю эту ошибку сегментации в этом сценарии командной строки PHP?
Это всего лишь быстрый сценарий сообщения к тому, что я называю «файлом ментального журнала». Просто чтобы следить за своими мыслями, когда я дрейфую и возвращаюсь к работе. Во всяком случае, в большинстве случаев это работает нормально, но время от времени я получаю ошибку сегментации. Слышал о них в Си, но никогда не имел их раньше в PHP. Вот сценарий:
#!/usr/bin/php
<?php
$mental_log_file = "/home/ali/mental-log";
array_shift($argv); //get rid of the initial arg (name of the command)
$log_entry = date('j-n-y H:i') . ' ' . implode(' ', $argv) . "\n";
file_put_contents($mental_log_file, $log_entry, FILE_APPEND);
Вот что я получаю за несколько прогонов:
ali@oem-desktop:~$ mlog blah ali@oem-desktop:~$ mlog blah Segmentation fault ali@oem-desktop:~$ mlog blah ali@oem-desktop:~$ mlog blah Segmentation fault ali@oem-desktop:~$ mlog blah ali@oem-desktop:~$ mlog blah ali@oem-desktop:~$ mlog blah Segmentation fault ali@oem-desktop:~$ mlog blah ali@oem-desktop:~$ mlog blah Segmentation fault ali@oem-desktop:~$ mlog blah Segmentation fault
Есть идеи о том, что я могу делать не так? Кажется, файл корректно обновляется, как и ожидалось, даже в тех прогонах, которые вызывают ошибки сегментации. Я использую Ubuntu 9.04 Jaunty.
ali@oem-desktop:~$ php --version PHP 5.2.6-3ubuntu4.1 with Suhosin-Patch 0.9.6.2 (cli) (built: Apr 23 2009 14:37:14) Copyright (c) 1997-2008 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
Заранее спасибо.