>[оверквотинг удален] > Вова, обычно мне кайфолом что-то пересказывать, и я даю ссылки. Пишу это > только ради будущих поколений, что будут читать этот тред, дабы они > не велись на твои бредовые загоны. > Стандарт, который в gcc зовется -std=c99, состоит из нескольких частей. Не каждая > из этих частей обязана поддерживаться системой, чтобы отвечать этому стандарту. То, > с чем вы тут столкнулись, называется XSI. Чтобы его задействовать, надо > в самом начале исходника, т.е. перед инклудами, воткнуть #define _XOPEN_SOURCE 600, > что просто, доступно, идеалистично и теоретично объяснено в последней ссылке. > Срочно читай IEEE Std 1003.1 много раз до просветления или меняй род > занятий, кулхацкер.Скорее это ты тут обнаруживаешь незнание того, что такое XSI. Отвечаю развёрнуто. mknod не может быть никаким 'XSI extension', как ты предполагал в первом сообщении. Это никакое не расширение апи X/Open System Interface. Мкнод - это и есть юникс, грубо говоря, сколько лет системе - столько и ему! SuS я читал не однократно, и продолжаю читать, и далеко не первый год, но с потребностью в данном макросе я сталкиваюсь впервые. Но отлично - я погуглил 10 минут, и теперь знаю больше тебя, и более того - знаю, как ты написал своё сообщение. Где-то ты увидал этот дефайн, обнаружил что он помогает, но как - понять так и не смог. В man 2 mknod от glibc упомянут только лишь как один из вариантов _XOPEN_SOURCE >= 500. Один из 4 макросов, которые дадут доступ к данному апи в glibc. а 600 соответствует SuSv3. То есть бейс интерфейс 2001го (включая мкнод) + расширения. Того же результата можно добиться с _BSD_SOURCE, с _SVID_SOURSE, с _XOPEN_SOURCE&& _XOPEN_SOURCE_EXTENDED, опять же - в конкретном случае реализации glibc. Никто не гарантирует работоспособность данных макросов при использовании других реализаций libc. Стандарт - это стандарт. Реализация - это реализация. Теория - практика. Мухи и котлеты.
|