сделать lsattr в си
Ну и да, man ioctl в твоем случае бесполезен, поскольку это абстрактный интерфейс, а тебе нужно знать, какие конкретные функции скрываются за ним.
система помощи линукса отличается от MSDN в лучшую сторонуну как минимум хорошо, что эти самые исходники есть, которые можно читать
в MSDN такой роскоши нет
Ну просто линукс другой. Можно оптимистично подходить к вопросу и утверждать, что недокументированных функций у него нет, если считать исходники документацией. Если же подходить пессимистично, то и документированных функций у него не хватает, поскольку исходники всё же технически документацией не являются. Возможности шире, трудности на пустом месте, т.е. не вызванные объективной сложностью устройства или богатством возможностей, тоже есть.
Можно оптимистично подходить к вопросу и утверждать, что недокументированных функций у него нет, если считать исходники документацией.Ну в винде, например, документации на функции вообще нет. Ни исходников, ни вообще никакой.
В онлайне, по крайней мере.
ну вообще-то, я когда-то прогал под win32 и помню читал документацию на системные функции
трудности на пустом местеэто же как раз следствие желаемой тобой ситуации, когда есть только одна либа, а стандарт и документация делаются когда-нибудь потом
ну вообще-то, я когда-то прогал под win32 и помню читал документацию на системные функцииА можешь пример показать?
это же как раз следствие желаемой тобой ситуации, когда есть только одна либа, а стандарт и документация делаются когда-нибудь потомты приписываешь мне то, что я не говорил. Я говорил об отсутствии стандарта, но не документации. В третий раз посылаю тебя изучать Qt как пример.
функция делает что надо. Но теперь надо понять, откуда она импортировала используемые дефайны, и можно сказать, что мне повезло. Потому что в общем случае "документация" на си сродни документации на асме, раскрывает минимум семантики происходящего. Мало знать, что я могу передать в такую-то процедуру указатель на что-то, нужно знать, сколько памяти под него выделять и что из него получится в результате ответа функции
А можешь пример показать?http://msdn.microsoft.com/en-us/library/aa383688.aspx
если тебе нужны атрибуты ext2-ext4 то логично искать интерфейс в e2fsprogs/e2fslibs
у тебя что chamrajnagar заигнорен? Я там и искал strace, он посмотрел его исходники. Документации (man) всё равно нет на функции библиотеки e2fs.
ты приписываешь мне то, что я не говорил. Я говорил об отсутствии стандарта, но не документации.получается, что тогда разработка документации - это выброшенные на ветер деньги, правда все равно в коде. И все приучаются смотреть на текущее поведение либы, а не на документацию.
Во-вторых, подтверди или отвергни Qt как успешный пример, не стандартизированной, но хорошо документированной библиотеки. А то я уже устал тебе приводить его в пример.
Запрос html margin padding documentation меня выкидывает на общую документацию, где эти нюансы расписаны.
Запрос qt margin padding border documentation выкидывает 9-ой ссылкой на документацию по классу QTextFrameFormat (ссылки до этого идут на сторонние сайты). Нюансы поведения при этом не расписаны. Например, margin-ы от двух разных контролов схлопываются или нет?
На примере html мы видим описание общего подхода для всех контролов, для qt - есть только описание для QTextFrameFormat, а если ли какие-то общепринятые правила при этом неизвестно.
у тебя что chamrajnagar заигнорен? Я там и искал strace, он посмотрел его исходники. Документации (man) всё равно нет на функции библиотеки e2fs.Только вот strace показывает обращения к ядру, а не к библиотекам. Попробуй ltrace — может с ним что покажет.
Запрос qt margin padding border documentation выкидывает 9-ой ссылкой на документацию по классу QTextFrameFormatтут следует уточнить поисковик и твой профиль в нём. У меня гугол первой ссылкой на запрос "qt margin padding border" выдал следующую страницу документации http://doc.qt.digia.com/qq/qq20-qss.html
Ещё один пример замечательной и нестандартной либы - это borland c++ builder. Система документации и кривая вхождения на тот момент были беспрецедентными. При этом от си только название, стандартов не поддерживало.
У меня гугол первой ссылкой на запрос "qt margin padding border" выдал следующую страницу документации http://doc.qt.digia.com/qq/qq20-qss.html1. какое отношение сайт digia имеет к QT?
2. по твоей ссылке не написано, margin-ы от двух контролов схлопываются или нет
1. какое отношение сайт digia имеет к QT?С выходом из анабиоза!
1. какое отношение сайт digia имеет к QT?основной мейнтейнер и владелец прав.
2. по твоей ссылке не написано, margin-ы от двух контролов схлопываются или нетНу если понимать буквально, то не схлопываются.
Но мне кажется, ты не понимаешь всей прелести единой либы. Ты можешь это проверить на своей машине, выяснить в деталях поведение и быть уверенным, что ровно таким же оно будет и на всех остальных машинах (и нет зависимостей от разных типов браузеров).
Документация может не выдавать совсем мелкие детали, но для того, чтобы написать пример её хватает. Не надо ничего дебагать, копаться в исходниках. Созадёшь быстро проект и проверяешь.
Ты можешь это проверить на своей машине, выяснить в деталях поведение и быть уверенным, что ровно таким же оно будет и на всех остальных машинах (и нет зависимостей от разных типов браузеров).зависимости от версий либы, зависимости от контролов других производителей, зависимости от ОС, зависимости от платформы, зависимости от языка (c++/python и т.д. зависимости от culture-ы (русский, английский и т.д.) никуда же не делись.
и получается, что всё это надо проверять для всех вариантов, вместо того, чтобы один раз выучить правила игры. Также приходится постоянно опасаться, что в определенный это может поменяться: ни имеющееся поведение в прошлом, ни документация не обязана к соблюдению, в отличии от стандарта
основная проблема, что разработчик может в либу пропустить любое говно, и при этом нет способа перепроверить через другие источники - такое поведение кода ошибочное, или так и должно быть.
зависимости от ОС, зависимости от платформы,Мне кажется, ты меняешь условия задачи на ходу.
Кстати, о маргинах. Я подумал немного и нашёл доку. Схлопывание маргинов в общем случае не должно происходить. С чего бы это. Но вот если несколько виджетов является коллекцией и идут вместе, то вопрос становится осмысленным. Так что я просто посмотрел на доку QBoxLayout:
QBoxLayout also includes two margin widths:
setContentsMargins sets the width of the outer border on each side of the widget. This is the width of the reserved space along each of the QBoxLayout's four sides.
setSpacing sets the width between neighboring boxes. (You can use addSpacing to get more space at a particular spot.)
The margin default is provided by the style. The default margin most Qt styles specify is 9 for child widgets and 11 for windows. The spacing defaults to the same as the margin width for a top-level layout, or to the same as the parent layout.
проблема ухудшения кода либы не стоит остро, если либа - опенсорс. Есть куда бежать в худшем случае (вспоминая побег libreoffice от оракла)
Так что я просто посмотрел на доку QBoxLayout:т.е. если у контролов стоят margin-ы по 5, то расстояние от края контейнера будет 5, а между контролами будет 10?
проблема ухудшения кода либы не стоит остро, если либа - опенсорс.конечно, стоит. Получается, что сначала разработчик либы допускает ошибку(кривое поведение) и оно сразу же становится стандартом де факто, потому что ты же сам утверждаешь, что ориентироваться необходимо на код, а не на здравый смысл или на что-то еще.
setSpacing sets the width between neighboring boxesspacing может быть отрицательным? а margin отрицательным? а padding? а border?
если в текущей версии отрицательное знание прокатывает, то можно ли на это расчитывать в будущем?
если в текущей версии отрицательное знание прокатывает, то можно ли на это расчитывать в будущем?открой для себя системы сборки с версионностью либ.
для регрессионного тестирования можно юзать CV либы
открой для себя системы сборки с версионностью либ.и как это поможет, когда одновременно необходим функционал из новой версии либы, и при этом есть потребность переиспользовать свой старый код?
и как это поможет, когда одновременно необходим функционал из новой версии либы, и при этом есть потребность переиспользовать свой старый код?1. Ты ничего не теряешь.
2. Ты переходишь на новую либу, только если переход себя окупает.
Кто-то любит тестинг, кто-то релиз. Ну это не повод ограничивать авторов в публикации обоих вариантов.
у тебя что chamrajnagar заигнорен? Я там и искал strace, он посмотрел его исходники. Документации (man) всё равно нет на функции библиотеки e2fs.Мне проще ответить чем читать весь флуд. Просто это логично что нужно смотреть в тулзу или либу а не в общий ман т.к. это fs-specific
Просто это логично что нужно смотреть в тулзу или либу а не в общий ман т.к. это fs-specificХм, не понимаю. Extended attributes поддерживают разные fs, так что имеет смысл смотреть apropos xattr, не?
Хм, не понимаю. Extended attributes поддерживают разные fs, так что имеет смысл смотреть apropos xattr, не?Это у него вроде не xattr. Это атрибуты на ext* типа immutable.
А почитать исходники lsattr не пробовал?
Хех, у меня первый позыв был предложить запустить под strace. Доктор, это лечится?
Кстати как мне кажется поиск исходников всяких гну/линукс тулзов дико неинтуитивен, или я это неправильно делаю?
А кто его знает, как ты это делаешь, тащем-та в дистрибутивах есть пакеты сорцов, если этого недостаточно, то в метаданных обычно прописаны ссылки на домашнюю страницу проекта и основной репозиторий проекта.
но вот спрашивать потом на форуме вместо просмотра исходников - уже странно
Кстати как мне кажется поиск исходников всяких гну/линукс тулзов дико неинтуитивен, или я это неправильно делаю?
$ which lsattr
/usr/bin/lsattr
$ dpkg -S /usr/bin/lsattr
e2fsprogs: /usr/bin/lsattr
$ apt-get source e2fsprogs
Кстати как мне кажется поиск исходников всяких гну/линукс тулзов дико неинтуитивен, или я это неправильно делаю?equery belongs /usr/bin/lsattr
emerge -fv sys-fs/e2fsprogs
но вот спрашивать потом на форуме вместо просмотра исходников - уже странноя просто воспитан в почтении к документации и всегда исходил из предположения, что её надо читать. До последнего надеялся, что я просто не нашёл где. Потому что исходники, конечно, осиливаются, но это трудозатратно и ты до конца не уверен, что можешь доверять полученным выводам.
1. какое отношение сайт digia имеет к QT?Даркгрей такой даркгрей!
Документации (man) всё равно нет на функции библиотеки e2fs.лично у меня есть документация в info и html, возьми info2man и переведи в man, если читать info тебе не позволяет религия, либо отпишись гентушным ментейнерам в irc, чтобы они срочно перестали выпиливать документацию при сборке.
Орейлевская The Linux Programming Interface под рукой сильно упрощает жизнь в таких ситуациях. Да и вообще полезная.
The Linux Programming InterfaceВоистину. Ну вот и нашлась дока. Чуть больше суток искалась
Оставить комментарий
yroslavasako
man что я должен сделать, чтобы узнать, как программно проверить атррибуты файла в линуксе? Я хочу обработать результаты аналогично тому, что показывает lsattr, но без вызова консольной программы, с помощью системного вызова. Получасовой гугл пока ничего не дал, кроме ссылок на написание драйверов и реализацию механизма со стороны ядраupdate:
strace показал, что я должен читать man ioctl. Но этот самый ioctl подозрительно пустой ман содержит. Это что предложение читать исходники? Что же, система помощи линукса отличается от MSDN в лучшую сторону, способствует личностному росту
update2:
обнаружил посыл в ioctl_list