На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (29) « Первая ... 18 19 [20] 21 22 ...  28 29  ( Перейти к последнему сообщению )  
> Вопрос к программистам на C , Исходники ядра Linux
    Цитата the_Shadow @
    Замечу, что четвёртым уровнем соответствия стандарту POSIX является сам стандарт + бибилиотеки расширения от коммерческих организаций и/или частных лиц.
    Таким образом, ты будешь удивлён, но даже Win32 API в своей С-ипостаси под действие стандарта попадает в части синтаксиса.

    Согласен. Под действие стандарта ISO 9899:1990 - стопроцентно. Но не под IEEE 1003.x.
      Цитата the_Shadow @
      Ты мешаешь правду и собственные домыслы. Не более того. Следовательно... Коль скоро домыслы имеют место быть, в данном конкретном вопросе это -- не более чем домыслы.

      Шад, опять неаргументированные высказывания? Теперь ты в мои собственные домыслы запишешь цитаты из IEEE 1003.1-2001?
        Ну тогда винда -- точно не POSIX. Там же mknod'а нет, и pthread_* отсутствует.
        И если, скажем, найдутся желающие организовать POSIX'овый wrapper вокруг виндовых тредов и вокруг всего, чего недостает винде до POSIX, то винда сразу станет POSIX-совместимой ОС, даже если такой compatibility layer будет существовать для одного единственного языка "C"?
        Цитата the_Shadow @
        Где здесь что-то иное, кроме С???

        А что, надо было уподобиться Кнуту и изобрести свой MIX, чтобы описать стандарт? Могли, конечно, и lisp выбрать, но выбрали C в силу широкой распространенности в системном (и прикладном) программировании.
          Цитата Flex Ferrum @
          Мда. Действительно, где тут С? Где описание синтаксиса языка, где описание операторов, их семантики? Где? В приведенном документе (он у меня открыт в соседнем окне) я вижу лишь описание кучи методов, которые стандартизирует POSIX.

          Ложь.
          Данный документ предоставляет гиперссылки на конкретные описания вполне конекретных функций. Пройдём по одной из них -- к примеру, по fflush (без разницы по какой). Открвыается документ с содержимым:
          Цитата
          The Open Group Base Specifications Issue 6
          IEEE Std 1003.1-2001
          Copyright © 2001 The IEEE and The Open Group, All Rights reserved.
          NAME

          fflush - flush a stream

          SYNOPSIS

          #include <stdio.h>

          int fflush(FILE *stream);

          DESCRIPTION

          [CX] [Option Start] The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of IEEE Std 1003.1-2001 defers to the ISO C standard. [Option End]

          If stream points to an output stream or an update stream in which the most recent operation was not input, fflush() shall cause any unwritten data for that stream to be written to the file, [CX] [Option Start] and the st_ctime and st_mtime fields of the underlying file shall be marked for update. [Option End]

          If stream is a null pointer, fflush() shall perform this flushing action on all streams for which the behavior is defined above.

          RETURN VALUE

          Upon successful completion, fflush() shall return 0; otherwise, it shall set the error indicator for the stream, return EOF, [CX] [Option Start] and set errno to indicate the error. [Option End]

          ERRORS

          The fflush() function shall fail if:

          [EAGAIN]
          [CX] [Option Start] The O_NONBLOCK flag is set for the file descriptor underlying stream and the process would be delayed in the write operation. [Option End]
          [EBADF]
          [CX] [Option Start] The file descriptor underlying stream is not valid. [Option End]
          [EFBIG]
          [CX] [Option Start] An attempt was made to write a file that exceeds the maximum file size. [Option End]
          [EFBIG]
          [XSI] [Option Start] An attempt was made to write a file that exceeds the process' file size limit. [Option End]
          [EFBIG]
          [CX] [Option Start] The file is a regular file and an attempt was made to write at or beyond the offset maximum associated with the corresponding stream. [Option End]
          [EINTR]
          [CX] [Option Start] The fflush() function was interrupted by a signal. [Option End]
          [EIO]
          [CX] [Option Start] The process is a member of a background process group attempting to write to its controlling terminal, TOSTOP is set, the process is neither ignoring nor blocking SIGTTOU, and the process group of the process is orphaned. This error may also be returned under implementation-defined conditions. [Option End]
          [ENOSPC]
          [CX] [Option Start] There was no free space remaining on the device containing the file. [Option End]
          [EPIPE]
          [CX] [Option Start] An attempt is made to write to a pipe or FIFO that is not open for reading by any process. A SIGPIPE signal shall also be sent to the thread. [Option End]

          The fflush() function may fail if:

          [ENXIO]
          [CX] [Option Start] A request was made of a nonexistent device, or the request was outside the capabilities of the device. [Option End]

          The following sections are informative.
          EXAMPLES

          Sending Prompts to Standard Output

          The following example uses printf() calls to print a series of prompts for information the user must enter from standard input. The fflush() calls force the output to standard output. The fflush() function is used because standard output is usually buffered and the prompt may not immediately be printed on the output or terminal. The gets() calls read strings from standard input and place the results in variables, for use later in the program.

          #include <stdio.h>
          ...
          char user[100];
          char oldpasswd[100];
          char newpasswd[100];
          ...
          printf("User name: ");
          fflush(stdout);
          gets(user);


          printf("Old password: ");
          fflush(stdout);
          gets(oldpasswd);


          printf("New password: ");
          fflush(stdout);
          gets(newpasswd);
          ...

          APPLICATION USAGE

          None.

          RATIONALE

          Data buffered by the system may make determining the validity of the position of the current file descriptor impractical. Thus, enforcing the repositioning of the file descriptor after fflush() on streams open for read() is not mandated by IEEE Std 1003.1-2001.

          FUTURE DIRECTIONS

          None.

          SEE ALSO

          getrlimit() , ulimit() , the Base Definitions volume of IEEE Std 1003.1-2001, <stdio.h>

          CHANGE HISTORY

          First released in Issue 1. Derived from Issue 1 of the SVID.

          Issue 5

          Large File Summit extensions are added.

          Issue 6

          Extensions beyond the ISO C standard are marked.

          The following new requirements on POSIX implementations derive from alignment with the Single UNIX Specification:

          *

          The [EFBIG] error is added as part of the large file support extensions.
          *

          The [ENXIO] optional error condition is added.

          The RETURN VALUE section is updated to note that the error indicator shall be set for the stream. This is for alignment with the ISO/IEC 9899:1999 standard.

          End of informative text.
          UNIX ® is a registered Trademark of The Open Group.
          POSIX ® is a registered Trademark of The IEEE.
          [ Main Index | XBD | XCU | XSH | XRAT ]

          Делаем man fflush и смотрим на описание функции. Сравнить судьба?
            Читаем внимательно. Еще более внимательно:
            Цитата the_Shadow @
            [CX] [Option Start] The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of IEEE Std 1003.1-2001 defers to the ISO C standard. [Option End]

            Какие, собственно, вопросы? Тебе явно написано: "эта страница выравнена/соответствует/совпадает со стандартом ISO C. Любые несоответствия с тем, что описано здесь и описано в стандарте ISO C неумышленны. Этот раздел IEEE Std 1003.1-2001 подчиняется/подчинен стандарту ISO C."
              Цитата Flex Ferrum @
              Согласен. Под действие стандарта ISO 9899:1990 - стопроцентно. Но не под IEEE 1003.x.

              Flex, гуйня, т.к. POSIX (справедливый для UNIX-систем на все 100%) размывается сверху-вниз. POSIX->ISO/IEC->ANSI->комм. приложения стандарта.
              В части синтаксиса самого языка и набора основных системных средств, оно на уровне 2 может и соответствовать. Но, возвращаясь к твоим бравым выражениям, POSIX 1 (1003.1) ни когда не будет ни shells (1003.2) ни utilities (1003.3).
              Цитата
              Если для тебя описание "shell and utilities" == "спецификация на язык С", то говорить действительно больше не о чем.

              Это -- полнейшая некомпетентность в данном вопросе, хотя бы по причине того, что... Вот твои SHELL и UTILITIES -- 1003.2 & 2a Shell & Tools, User Portability Extensions 9945-2, 1003.2b Additional Utilities 9945-2, 1003.2c Security, 1003.2d Batch, 1003.2e Removable Media Utilities. Где ты в данных стандартах отроешь 1003.1 -- мне неведомо.

              По поводу языковых "привязок":
              -- Ada -- группа стандартов 1003.5. Её наличие в стандартах POSIX определяется тем, что Ada сама по себе была разработана по заказу Пентагона. См. выше -- писал о том, что "соответствие" POSIX является непеременным условием для принятия какой-либо системы в госструктуры и армию США.
              -- Fortran -- 1003.9 (bindings to 1003.1) и 1003.19 (Fortran90 bindings to 1003.1). Странно, не так ли?

              А, вообще, вас сюда -> http://www.pasc.org/standing/sd11.html#statustable
              Приводя данную ссылку вот уже второй раз, искренне недоумеваю -- это как же мои доводы не опираются на доказательства (я всё по поводу п. 5 "Правил форума")? Или, позвольте, первоисточник уже не канает как доказательство? С каких пор?
                Цитата e-yes @
                Как отобразить это в C++?

                Обычным виртуальным методом. Только в C ты явно включаешь указатели на функции как элементы структуры, а в C++ виртуальный метод включается неявно в vtbl, откуда возникает иллюзия, что для вызова методов класса не нужен this. Если тебе не нужен priv, но нужно вызывать какие-то функции, указатели на которые описаны в структуре ты все равно будешь передавать в dumpsys указатель на структуру. В C++ за тебя это неявно сделает компилятор.
                Цитата e-yes @
                this не нужен если

                Если тебе не нужен this => тебе не нужен объект => ты можешь использовать статический метод. При чем здесь виртуальные функции?
                По-моему очевидно, что на C++ можно сделать то же самое, что и на C, при этом сложность реализации на C++ никогда не превысит сложность реализации на C.
                  Цитата Flex Ferrum @
                  Какие, собственно, вопросы?

                  Очень простой -- а откуда сам по себе ISO/IEC взялся? Не из POSIX/IEEE?
                  Вопрос подчинения стандарту ISO/IEC в данном конкетном случае определён явно по тому, что POSIX вырабатывает стандарт изначально. Потом передаёт его на рассмотрение в ISO/IEC, определяя те области конкретных разделов стандарта, которые будут (или могут быть) переопределены, явно оговаривая -- "мы сделали это так, а вот более правильным будет то, что предложит ISO/IEC".

                  А теперь, я не зря man fflush помянул, ой не зря... Смотрим на подраздел этой страницы:
                  Цитата
                  CONFORMING TO:
                  The function fflush() conforms to ANSI X3.159-1989 ("ANSI C").


                  Тогда, следуя твоей логике, надо будет сказать, что в данном случае, будет более правильно ссылаться не на POSIX, ни на ISO/IEC, а... на третий уровень -- уровень нац. стандартов? Правда, а где в таком случае изначально определена функция fflush()? Разве не в POSIX?
                    Цитата the_Shadow @
                    Очень простой -- а откуда сам по себе ISO/IEC взялся? Не из POSIX/IEEE?
                    Вопрос подчинения стандарту ISO/IEC в данном конкетном случае определён явно по тому, что POSIX вырабатывает стандарт изначально. Потом передаёт его на рассмотрение в ISO/IEC, определяя те области конкретных разделов стандарта, которые будут (или могут быть) переопределены, явно оговаривая -- "мы сделали это так, а вот более правильным будет то, что предложит ISO/IEC".

                    Так, давай разбираться. Был С. Он был (начиная с 1982 по 1990-ый года) стандартизирован в документ ISO 9899:1990. И есть POSIX, история которого была мною уже приведена:
                    Цитата
                    Historically, POSIX 1003.1 has been the base standard upon which the POSIX family of standards has been built. In keeping with its original focus on the UNIX system, it is aimed at interactive timesharing computing environments.

                    The first edition of IEEE Std 1003.1 was published in 1988. Subsequent editions were published in 1990, 1996 and 2001. The 1990 edition was a revision to the 1988 edition and became the stable base standard onto which further amendments were added. The 1990 edition was also approved as an international standard, ISO/IEC 9945-1:1990.

                    The 1996 edition added the IEEE Std 1003.1b-1993, IEEE Std 1003.1c-1995, and 1003.1i-1995 amendments to the base standard, keeping the stable core text unchanged. The 1996 edition of IEEE Std 1003.1 was also approved as an international standard, ISO/IEC 9945-1:1996.

                    In 1998 the first real-time profile standard, IEEE Std 1003.13-1998 was published, enabling POSIX to address embedded real-time applications and smaller footprint devices.

                    In 1999 the decision was taken to commence the first major revision to the core base standard in ten years, including a merger with the 1003.2 standards for Shell and Utilities which had been a separate standard up to this point . It was agreed that this work be undertaken by the Austin Group. As part of this decision the PASC decided to cease rolling amendments to the base standard after completion of IEEE Stds 1003.1a, 1003.1d, 1003.1g, 1003.1j, 1003.1q, and 1003.2b. These projects were rolled into the 2001 edition of IEEE Std 1003.1. It was decided to convert other projects in progress to standalone documents.

                    По этому как стандарт ISO C мог быть создан на базе POSIX (учитывая то, что первый начал оформляться гораздо раньше второго) - ума не приложу. Может быть объяснишь?

                    Добавлено
                    Цитата the_Shadow @
                    Это -- полнейшая некомпетентность в данном вопросе, хотя бы по причине того, что... Вот твои SHELL и UTILITIES -- 1003.2 & 2a Shell & Tools, User Portability Extensions 9945-2, 1003.2b Additional Utilities 9945-2, 1003.2c Security, 1003.2d Batch, 1003.2e Removable Media Utilities. Где ты в данных стандартах отроешь 1003.1 -- мне неведомо.

                    Читай внимательно:
                    Цитата Flex Ferrum

                    Если для тебя описание "shell and utilities" == "спецификация на язык С", то говорить действительно больше не о чем.

                    Да и находил то не я, а ты:
                    Цитата the_Shadow @
                    Цитата
                    IEEE Std 1003.1-2001 is one of a family of standards known as POSIX. The family of standards extends to many topics; IEEE Std 1003.1-2001 is known as POSIX.1 and consists of both operating system interfaces and shell and utilities. IEEE Std 1003.1-2001 is technically identical to The Open Group Base Specifications, Issue 6, which comprise the core volumes of the Single UNIX Specification, Version 3.

                    Т. е. ты уже сам себя начал в некомпетентности обвинять?

                    Добавлено
                    Да и разъясни для себя (и для меня) какой у кого уровень - у IEEE и у ISO как у организаций? Кто из них выше по уровню?
                      Цитата linuxfan @
                      Если тебе не нужен this => тебе не нужен объект => ты можешь использовать статический метод. При чем здесь виртуальные функции?

                      Я ж объяснил уже - dumper может быть разным.

                      Добавлено
                      Цитата linuxfan @
                      По-моему очевидно, что на C++ можно сделать то же самое, что и на C, при этом сложность реализации на C++ никогда не превысит сложность реализации на C.

                      В этом полностью согласен. Но однако привел пример оверхеда.
                        Цитата the_Shadow @
                        А теперь, я не зря man fflush помянул, ой не зря... Смотрим на подраздел этой страницы:
                        Цитата
                        CONFORMING TO:
                        The function fflush() conforms to ANSI X3.159-1989 ("ANSI C").

                        Что-то в приведенном тобою описании fflush я этого раздела не углядел. В том варианте POSIX, что у меня под рукой - тоже. А ежели в твоем man'е есть такой CONFOFMING - то это проблемы твоего man'а. :) Если ты обратишь внимание - идет ссылка на стандарт С, принятый ANSI в 1989-ом году. С тех пор, я думаю, оный man просто напросто не менялся за ненадобностью. Что и отображено в его футере:
                        Цитата
                        BSD MANPAGE 1993-11-29
                          Лихо передёрнул...
                          Цитата Flex Ferrum @
                          Т. е. ты уже сам себя начал в некомпетентности обвинять?

                          Может, ты мне и вот эту фразу припишешь?
                          Цитата Flex Ferrum @
                          Не дурно было бы заметить, что POSIX и C это, гм, примерно то же самое, как компьютер целиком и клавиатура к нему. Т. е. не сравниваемые вещи. В стандарте С POSIX упоминается единожды - в списке библиографии.

                          Браво!
                          Цитата Flex Ferrum @
                          Да и разъясни для себя (и для меня) какой у кого уровень - у IEEE и у ISO как у организаций? Кто из них выше по уровню?

                          LOOOOOOOOOOOOOOOOOOL!!!
                          http://std.dkuug.dk/JTC1/SC22/WG15/ -- открой и удивись. IEEE с торговой маркой POSIX есть подкомитет ISO! По этой причине, IEEE вырабатывает стандарт ИЗ-НА-ЧАЛЬ-НО! А вот ISO -- добавляет стандарт и доводит его до медународного уровня! НО сам по себе вариант ISO -- вторичен по отношению к варианту IEEE.
                            Цитата the_Shadow @
                            Может, ты мне и вот эту фразу припишешь?

                            Нет. И я от нее не отказываюсь. Ибо убедительных доказательств того, что это не так, ты не привел. А приведенные мною выдержки из стандарта говорят в пользу этой фразы. И опровежений того, что POSIX упоминается в ISO C всего единожды - ты тоже не привел.
                            Цитата the_Shadow @
                            http://std.dkuug.dk/JTC1/SC22/WG15/ -- открой и удивись. IEEE с торговой маркой POSIX есть подкомитет ISO! По этой причине, IEEE вырабатывает стандарт ИЗ-НА-ЧАЛЬ-НО! А вот ISO -- добавляет стандарт и доводит его до медународного уровня! НО сам по себе вариант ISO -- вторичен по отношению к варианту IEEE.

                            Т. е. (с внешней точки зрения) IEEE == ISO. Хотя я чаще вижу связку ANSI/IEEE.... Но раз IEEE - подкоммитет ISO, то как (и с какой стати) он должен быть значимей ISO? А то, что IEEE разрабатывает POSIX из-на-чаль-но, еще не значит, что его стандарты должны быть выше (по уровню) стандартов, вырабатываемых в других подкоммитетах того же ISO. Короче, Шад, переставай нести околесицу. Тебе тут уже десять раз было показано (с соответствующими цитатами из стандарта), что POSIX в части System Interface базируется на ISO C (а не наоборот). Если тебе это так требуется, то я могу хоть сотню раз процитировать соответствующее место стандарта. Благо, клавиатура работает и shift-ins не западает. Но для тебя, видимо, слова дядек из упоминаемых тобою IEEE/ISO не имеют никакого значения. Ну тогда уволь. Это даже не к терапевту. С этого момента (и до момента, пока ты полностью и однозначно не докажешь обратное) ссылки на какие либо соответствия стандартам, указываемые тобою, будут восприниматься мною как ссылки в никуда. Ибо ты недвусмысленно дал понять, что написанное в этих стандартах для тебя не имеет никакого значения.
                            А от прямых ответов на прямые и простые вопросы ты почему-то уходишь. Хотя я тебе уже их три раза задавал.

                            Добавлено
                            Цитата the_Shadow @
                            Лихо передёрнул...

                            Я не передернул. Это ты невнимательно читаешь.
                              Цитата Flex Ferrum @
                              А приведенные мною выдержки из стандарта говорят в пользу этой фразы.

                              Ибо они приведены тобой... Всё ясно.

                              Тебе приводилсь ссылки на ряд документов, которые ты благополучно "не замечал". Тебе приводилсь ссылки и, более того, документы, указывающие на то, кто именно разрабатывает стандарт, а кто его одобряет -- тебе это не "доказательство". Тебе приведены ссылки на то, что POSIX описывает С (а вот кто и что думает по этому поводу -- в топку). Тебе и это не доказательство. Всё верно. Эти вещи приводились тебе, а не тобой.

                              Flex, как я выше сказал, мне всё ясно. По данному поводу, учитывая то, что ты просто и откровенно отрицаешь именно то, что ты сам и писал (по поводу номеров стандарта в части shell и util. и соответствия их именно 1003.1), я считаю данный спор для тебя -- попыткой хоть как-то доказать свою компетентность в данном вопросе, а для себя -- потерей времени. Ибо есть слишком много вопросов, которые в том же POSIX описаны довольно детально (те же shell & utilities). Видимо, для тебя так и остаётся тайной тот момент, что POSIX для UNIX et al есть основной набор стандартов, включающий в себя и С и shells и utilities и ещё море всего (ссылка -- выше). По этой причине, стандарт ISO для нас вторичен, т.к. там не сильно уделяется этому внимание. Да и фактически -- при первичной разработке стандарта POSIX (именно они на данный момент этим заняты, создавая наиболее "строгую" версию), тебе важнее (почему-то) вторичная, одобренная версия... Страно...

                              Далее. Сам по себе стандарт POSIX содкржит определения и обоснования (ууууу! ты ещё Rationale к нему не видел) того, почему это сделано именно так, а не иначе. В стандарте ISO эта часть есть, но она не столь обширна как в POSIX. Вообще говоря, комплексы я не нанимался улещевать.

                              Добавлено
                              DIXI.

                              Добавлено
                              Цитата Flex Ferrum @
                              Короче, Шад, переставай нести околесицу.

                              Ага. ГУЙня относительно того, кто же есть разработчик стандарта -- сама организация ISO, стандартизирующая дохренищи всего или конкретный надор подкомитетов IEEE, имеющий общее наименование POSIX мне уже даже смешной перестала казаться...
                              Сообщение отредактировано: the_Shadow -
                                Шадыч, ты глазки то вверх подними - воспользуйся скроллингом страницы. И обрати внимание - откуда я ссылки приводил. Именно из Rationale упоминаемого тобою POSIX.

                                Цитата the_Shadow @
                                Тебе приводилсь ссылки на ряд документов, которые ты благополучно "не замечал". Тебе приводилсь ссылки и, более того, документы, указывающие на то, кто именно разрабатывает стандарт, а кто его одобряет -- тебе это не "доказательство". Тебе приведены ссылки на то, что POSIX описывает С (а вот кто и что думает по этому поводу -- в топку). Тебе и это не доказательство. Всё верно. Эти вещи приводились тебе, а не тобой.

                                Откорую тебе страшную тайну. POSIX у меня открыт в соседнем окне. А если для тебя "описание библиотеки языка" (которое ты любезно предоставил) == "описание языка С", то, Шад, извини... Язык (да будет тебе известно) это не только библиотека, но и синтаксис, и описание семантики конструкций, и соглашения, и много-много чего еще. В POSIX ничего этого нет. Ну нет, и все тут. Есть только System Interface, который ты (с какого то перепугу) считаешь описанием языка С. Ну, чтож, считай дальше.
                                Или конструкции for, struct, while, typedef и проч. проч. проч. частью языка уже не являются? Ну ну... Ну ну...

                                Цитата the_Shadow @
                                по поводу номеров стандарта в части shell и util. и соответствия их именно 1003.1

                                Я писал????? Это где?

                                Цитата the_Shadow @
                                Видимо, для тебя так и остаётся тайной тот момент, что POSIX для UNIX et al есть основной набор стандартов, включающий в себя и С и shells и utilities и ещё море всего (ссылка -- выше). По этой причине, стандарт ISO для нас вторичен

                                Шад, не обобщай. Не "для нас", а "для тебя". Ибо нейдется немало людей, которые успешно используют fortran, ADA, free pascal и пользуются все тем же наборм функций, декларируемых POSIX'ом. А также еще больше людей, для которых POSIX - это лишь стандарт на API и набор утилит операционной системы. Один, замечу, из многих.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (29) « Первая ... 18 19 [20] 21 22 ...  28 29


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0624 ]   [ 15 queries used ]   [ Generated: 8.11.25, 17:49 GMT ]