На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (29) « Первая ... 23 24 [25] 26 27 ... Последняя »  ( Перейти к последнему сообщению )  
> Вопрос к программистам на C , Исходники ядра Linux
    Цитата Flex Ferrum @
    Учитывая, что POSIX System Interfaces - это лишь описание API системы, то выводы из этого высказывания я делаю соответствующие.

    Какой на хрен "системы"? Ты сам всё сказал.

    А я добавлю -- первичный, организующий для всех остальных языков программирования тот API, которым эти языки пользуются (выше приведены примеры для Fortran и Ada, причём, в именах этих стандартов есть указание на то, что это -- bindings to POSIX 1003.1, т.е., и на System Interfaces включительно). Это -- для систем, относящихся ко множеству POSIX-совместимых. Иного просто нет, да он и на хер никому не вбился. Ибо и сущетвующий удобен. Если, по его описанию это -- что-то отличное от С в части синтаксиса, то...

    Цитата Flex Ferrum @
    Еще раз: я не могу сравнивать язык программирования (клавиатуру - т. е. средство управление) с программным интерфейсом (компьютером - т. е. тем, чем управляют). Если ты можешь - принимай поздравления.

    Кланяясь. Спасибо... Спасибо...

    Всё. С меня довольно.
    DIXI.
      Цитата the_Shadow @
      Какой на хрен "системы"?

      Той, которая имеется в виду под словом System в заглавии упоминаемого тобою раздела System Interface.

      Добавлено
      А именно, это некая
      Цитата
      IEEE Std 1003.1-2001 defines a standard operating system interface and environment, including a command interpreter (or "shell"), and common utility programs to support applications portability at the source code level. It is intended to be used by both applications developers and system implementors.


      Добавлено
      Цитата the_Shadow @
      А я добавлю -- первичный, организующий для всех остальных языков программирования тот API, которым эти языки пользуются (выше приведены примеры для Fortran и Ada, причём, в именах этих стандартов есть указание на то, что это -- bindings to POSIX 1003.1, т.е., и на System Interfaces включительно). Это -- для систем, относящихся ко множеству POSIX-совместимых. Иного просто нет, да он и на хер никому не вбился. Ибо и сущетвующий удобен. Если, по его описанию это -- что-то отличное от С в части синтаксиса, то...

      С трудом понимаю, что ты хотел этой фразой сказать.
        Цитата Flex Ferrum @
        С трудом понимаю, что ты хотел этой фразой сказать.

        ЗЗ.
        Ээээ... "Забей, забудь".
          Цитата the_Shadow @
          описание fflush() (как уже рассматривавшийся выше единичный пример) дано изначально в POSIX, позже оно откорректировано (я уже объяснял почему так сделано, так же выше) в ISO.
          Только почему-то следов этой корректировки никому не видно.
          Цитата
          7.19.5.2 The fflush function
          Synopsis
          #include <stdio.h>
          int fflush(FILE *stream);
          Description
          If stream points to an output stream or an update stream in which the most recent operation was not input, the fflush function causes any unwritten data for that stream to be delivered to the host environment to be written to the file; otherwise, the behavior is undefined.
          If stream is a null pointer, the fflush function performs this flushing action on all streams for which the behavior is defined above.
          Returns
          The fflush function sets the error indicator for the stream and returns EOF if a write error occurs, otherwise it returns zero.
          Forward references: the fopen function (7.19.5.3).
          Никакого упоминания про POSIX.
          Зато обратных примеров полно. Открываем в POSIX описание, например, printf и видим любопытную запись:
          Цитата
          Issue 5
          Aligned with ISO/IEC 9899:1990/Amendment 1:1995 (E). Specifically, the l (ell) qualifier can now be used with c and s conversion specifiers.

          Цитата the_Shadow @
          А теперь, давай глянем на сырец того же fflush()
          И что он доказывает? Ну видно, что написан он латиницей. А у меня в Microsoft Platform SDK February 2003 она написана так:
          ExpandedWrap disabled
            #ifdef _MT
             
            int __cdecl fflush (
                    REG1 FILE *stream
                    )
            {
                    int rc;
             
                    /* if stream is NULL, flush all streams
                     */
                    if ( stream == NULL )
                            return(flsall(FFLUSHNULL));
             
                    _lock_str(stream);
             
                    __try {
                            rc = _fflush_lk(stream);
                    }
                    __finally {
                            _unlock_str(stream);
                    }
             
                    return(rc);
            }
             
            int __cdecl _fflush_lk (
                    REG1 FILE *str
                    )
            {
             
            #else  /* _MT */
             
            int __cdecl fflush (
                    REG1 FILE *str
                    )
            {
             
                    /* if stream is NULL, flush all streams */
                    if ( str == NULL ) {
                            return(flsall(FFLUSHNULL));
                    }
             
            #endif  /* _MT */
             
                    if (_flush(str) != 0) {
                            /* _flush failed, don't attempt to commit */
                            return(EOF);
                    }
             
                    /* lowio commit to ensure data is written to disk */
                    if (str->_flag & _IOCOMMIT) {
                            return (_commit(_fileno(str)) ? EOF : 0);
                    }
                    return 0;
            }
            int __cdecl _flush (
                    FILE *str
                    )
            {
                    REG1 FILE *stream;
                    REG2 int rc = 0; /* assume good return */
                    REG3 int nchar;
             
                    /* Init pointer to stream */
                    stream = str;
             
             
                    if ((stream->_flag & (_IOREAD | _IOWRT)) == _IOWRT && bigbuf(stream)
                            && (nchar = (int)(stream->_ptr - stream->_base)) > 0)
                    {
                            if ( _write(_fileno(stream), stream->_base, nchar) == nchar ) {
                                    /* if this is a read/write file, clear _IOWRT so that
                                     * next operation can be a read
                                     */
                                    if ( _IORW & stream->_flag )
                                            stream->_flag &= ~_IOWRT;
                            }
                            else {
                                    stream->_flag |= _IOERR;
                                    rc = EOF;
                            }
                    }
             
                    stream->_ptr = stream->_base;
                    stream->_cnt = 0;
             
                    return(rc);
            }
          Особенно забавно там выглядят __try и __finally :D Ну явно C. :D
            Цитата trainer @
            Особенно забавно там выглядят __try и __finally :D Ну явно C. :D

            Угумс. Особенно если взглянуть на этот пункт стандарта POSIX:
            Цитата
            For the C programming language, shall not exceed any minimum implementation limit defined in the ISO C standard, unless the System Interfaces volume of IEEE Std 1003.1-2001 specifies a higher minimum implementation limit

            то можно увидить, что и POSIX-conformace тоже не выдерживается.
              2 BugHunter.

              О Symbian. Пара слов.

              Итак, то, что оно написано на С++ не вызывает ни каких эмоций. Написано и написано. Замечу, что я ни где не рассматривал ограничение на то, на чём оно написано. А вот ограничение на "нижний уровень", уровень системообразования, довольно серьёзный -- оно обязано реализовать ясно и чётко описанные вещи -- хочется этого кому-то или нет.

              Однако, я, не зная на чём там написана PalmOS версии 5.4.2, дал ссылку на выжимку из документации по PalmOS, где перечислены вызовы С-функций, описанных в POSIX. Утверждение о POSIX-совместимости Symbian, меня заинтересовало.

              Так, как я с этой осью не знаком, решил пол-часика по-гуглить. Собственно, найден ряд PDF'ов, сходящихся к тому, что написано для v70. Здесь то, что можно найти в простом html, без PDF'ов...
              Итак:
              http://www.symbian.com/developer/techlib/v70sdocs/doc_source/DevGuides/cpp/Base/CStandardLibrary/DesignSTDLIB.html#stdlib%2edesign -- дизайн и реализация. Документ, думаю, для Symbian'овца интересный. Да и так... Почитать.
              Явно оговорено то, что:
              Раздел DESIGN GOALS:
              Цитата
              - to address the porting requirements of C software engines to Symbian OS.
              - to provide an ANSI C library with associated POSIX system calls.
              - to support both pure C programs and mixed C/C++ programs.

              Замечаем -- library оно обеспечивает ANSI (т.е., национального уровня), а вот POSIX system calls -- звиняйте. Уже хорошо нам знакомое. В прочем, не всем.

              Symbian'овцы чётко оговорили то, что они реализуют -> http://www.symbian.com/developer/techlib/v70sdocs/doc_source/reference/cpp/libc/index.html#ref%2ecpp%2elibc%2eindex

              Если подумать, а на хер им это надо? Ведь, истинные монстры С++ в пять минут тебе всё, что угодно изваяют, то... думаю, там народ по-умнее сидит. Вот пример того, зачем они сделали свою систему именно так, как сделали -> http://linuxdevices.com/news/NS5822160852.html. Забавно, не так ли? :D:D:D И откуда в Apache C++? :D:D:D
              Верно -- он там на хер не нужен.

              Добавлено
              Однако, "рисовать" свой вариант чего-то Apache-подобного ни кто не стал, просто взяли, да использовали проверенный код. Видимо, да... "Программирование в России" довольно экстримальная вещь... :D:D:D

              Кстати, BuhgHunter, есть ещё один вывод. Хорошо известно, что для ОСей, очень активно использующих С++, довольно много вирусов -- цинда и Symbian коррелируют с этим утверждением. А как быть с тем, что для PalmOS & Linux весьма и весьма мало вирусов? :D:D:D

              Здесь напрашивается один вывод... Чем больше проггеры/девелоперы железа озабочены собственными понтами, тем меньше они заняты реализацией (грамотной) стандарта, тем более долбанутый код или система в целом выходят из их рук. Ну, а там -- как кривая ляжет... :D:D:D
                Цитата the_Shadow @
                Замечаем -- library оно обеспечивает ANSI (т.е., национального уровня), а вот POSIX system calls -- звиняйте. Уже хорошо нам знакомое. В прочем, не всем.
                Ну ты, блин, даешь! Там же приведена ссылка на ansi.org. Я тебе давал ссылку на их webstore. Найди там ANSI C. ANSI C - это устоявшееся понятие, под которым обычно понимают ISO/IEC 9899:1989(он же C89) и ничего более. Посмотри, что делает в GCC ключик -ansi. Так получилось, что сначала эта версия стандарта была принята ANSI(естественно, только для США), а затем ISO(для всего мира). Что такого удивительного в том, что американцы заботятся о соответствии американским стандартам? Тебя не удивляет, что они меряют в дюймах, футах, баррелях?
                  Цитата trainer @
                  Что такого удивительного в том, что американцы заботятся о соответствии американским стандартам? Тебя не удивляет, что они меряют в дюймах, футах, баррелях?

                  Меня удивляет несколько другое. Я уже писал об "очерёдности" стандартов. Вначале -- общая разработка в пределах коммитетов POSIX, потом утверждение интернационального стандарта -- ISO/IEC, потом -- национальных (ANSI, к сожалению в России я не знаю такого "института по стандартизации") и, последний уровень -- комм. фирмы со совоими разработками. Видимо, ты хреново прочёл. Твои ссылки читал.

                  А потом -- зачем нужно было в Symbian городить какие-то С-вызовы?

                  Добавлено
                  Тебя не удивляет то, что это сделано? И почему именно С, а не "что-то ещё"?
                    Цитата the_Shadow @
                    Тебя не удивляет то, что это сделано?
                    Меня - нет.
                    Цитата the_Shadow @
                    И почему именно С, а не "что-то ещё"?
                    Разумная достаточность, традиция. Была бы традиция использовать для этого, например, Ada - было бы на нем.
                      Цитата trainer @
                      Разумная достаточность, традиция. Была бы традиция использовать для этого, например, Ada - было бы на нем.

                      Угу. Что угодно, только не определения POSIX 1003.1 System Interfaces. Ясные и чёткие... "Традиция", "разумная достаточность"...

                      Всё ясно.
                        Цитата the_Shadow @
                        Угу. Что угодно, только не определения POSIX 1003.1 System Interfaces. Ясные и чёткие... "Традиция", "разумная достаточность"...
                        Была бы традиция использования Ada - POSIX базировался бы на Ada. Не устраивал бы ни один существующий язык - придумали бы новый.
                          Цитата trainer @
                          Была бы традиция использования Ada - POSIX базировался бы на Ada. Не устраивал бы ни один существующий язык - придумали бы новый.

                          О! Ещё один спец по сослагательному наклонению!

                          "Было бы" -- не канает! Есть то, что есть (и в части Ada в том числе). А всё остальное -- мыслительный онанизм, мало пересекающийся с реальностью. И до того, как сказки сказывать, лучше с нею (реальностью) познакомиться по-ближе.
                            Ну конечно, ты же у нас единственный, имеющий дело с реальностью. Остальные - просто фантазируют. :lool:
                            Правда, реальность у тебя какая-то своеобразная. Присутствующая в основном у тебя в голове. :lool:
                              trainer, оставь Шада в покое. :) С ним уже давно все ясно:
                              Цитата trainer @
                              Правда, реальность у тебя какая-то своеобразная. Присутствующая в основном у тебя в голове. :lool:

                              а потому как соотносятся те или иные стандарты, и существуют ли они вообще - не столько для него принципиально.
                                немного оффтопа и о симбиане

                                книгу можно посмотреть тут
                                правда воды много...

                                ftp://reader:reader707@217.23.124.148/Wiley_Programming_for_the_Series_60_Platform_and_Symbian_OS_(2003).pdf

                                фак
                                ftp://reader:reader707@217.23.124.148/faq.zip

                                правда фак моего собственного изготовления, написанный от руки и по простому. так что звиняйте, что без картинок.
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,2317 ]   [ 14 queries used ]   [ Generated: 20.05.24, 00:16 GMT ]