Век живи, век учись - дураком помрешь.
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 08:33 pm (UTC)Сейчас проверим. )
no subject
Date: 2008-02-01 08:55 pm (UTC)no subject
Date: 2008-02-01 09:05 pm (UTC)unpack "p","\0\0\0\1" только так кладется.
no subject
Date: 2008-02-01 09:07 pm (UTC)no subject
Date: 2008-02-04 06:02 am (UTC)no subject
Date: 2008-02-01 11:36 pm (UTC)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)Но вот чистый питон.. !
no subject
Date: 2008-02-02 09:26 am (UTC)no subject
Date: 2008-02-02 03:52 pm (UTC)no subject
Date: 2008-02-02 06:47 pm (UTC)no subject
Date: 2008-02-01 09:21 pm (UTC)no subject
Date: 2008-02-02 08:08 am (UTC)no subject
Date: 2008-02-01 09:50 pm (UTC)no subject
Date: 2008-02-01 10:26 pm (UTC)Таки фича.
no subject
Date: 2008-02-01 11:24 pm (UTC)no subject
Date: 2008-02-01 11:36 pm (UTC)А токого применения не придумал.
no subject
Date: 2008-02-01 11:40 pm (UTC)no subject
Date: 2008-02-02 01:51 am (UTC)no subject
Date: 2008-02-02 08:42 am (UTC)+1
Рву на себе волосы и ухожу читать документацию.
Паллиатива :(
Date: 2008-02-02 09:14 am (UTC)no subject
Date: 2008-02-02 10:08 am (UTC)no subject
Date: 2008-02-02 10:59 am (UTC)no subject
Date: 2008-02-02 06:04 pm (UTC)Надо смотреть исходники.
no subject
Date: 2008-02-03 12:24 am (UTC)P.S. Я бы сделал проверку на файле, созданном mktemp(3), чтобы не порождать при каждой проверке ненужный процесс.
no subject
Date: 2008-02-03 08:54 am (UTC)no subject
Date: 2008-02-04 05:59 am (UTC)спасибо.