Век живи, век учись - дураком помрешь.
Feb. 1st, 2008 10:23 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Больше 10 лет программирую для *nix, и только сегодня совершенно случайно узнал, что оказывается, существует способ проверить, случится Segmentation Fault при обращении по определенному указателю, или нет.
Оказывается, если передать некорректный указатель (и соответствующий размер) в системный вызов write, он не пошлет программе SIGSEGV, а просто вернет EFAULT в errno. К сожалению, это не работает в случае, если этот файл связан с /dev/null. Но fileno(popen("cat >/dev/null")) прокатывает.
Оказывается, если передать некорректный указатель (и соответствующий размер) в системный вызов write, он не пошлет программе SIGSEGV, а просто вернет EFAULT в errno. К сожалению, это не работает в случае, если этот файл связан с /dev/null. Но fileno(popen("cat >/dev/null")) прокатывает.
no subject
Date: 2008-02-01 11:41 pm (UTC)Я вот в питоне ни одного сигнала не перехватываю. А программа неубиваемая. Чудеса? :)
no subject
Date: 2008-02-02 01:18 am (UTC)no subject
Date: 2008-02-04 06:03 am (UTC)no subject
Date: 2008-02-04 10:18 am (UTC)Но вот чистый питон.. !