АнглийскийФранцузскийИспанский

Ad


Значок OnWorks

c99posix - Интернет в облаке

Запустите c99posix в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда c99posix, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


c99 - компилировать стандартные программы на C

СИНТАКСИС


c99 [кредита...] пути [[пути] [−я каталог]
[−L каталог] [библиотека]]...

ОПИСАНИЕ


Ассоциация c99 Утилита - интерфейс к стандартной системе компиляции Си; он должен принять
исходный код, соответствующий стандарту ISO C. Система концептуально состоит из
компилятор и редактор ссылок. Входные файлы, на которые ссылается пути операнды и вариант-
аргументы должны быть скомпилированы и связаны для создания исполняемого файла. (Не указано
происходит ли связывание полностью в рамках операции c99; некоторые реализации могут
создавать объекты, которые не будут полностью разрешены до тех пор, пока файл не будет выполнен.)

Если же линия индикатора −с указана опция для всех операндов пути в форме файл.c, файлы:

$ (базовое имя пути .c) .o

создается в результате успешной компиляции. Если −с вариант нет
указано, не уточняется, были ли такие .o файлы создаются или удаляются для файл.c
операнды.

Если нет параметров, препятствующих редактированию ссылки (например, −с or −Э) и все входные файлы
скомпилировать и связать без ошибок, полученный исполняемый файл должен быть записан в соответствии с
до −о Outfile вариант (если есть) или в файл а. выход.

Исполняемый файл должен быть создан, как указано в Раздел 1.1.1.4, Файл Читать, Написать,
и Создание, за исключением того, что биты разрешения файла должны быть установлены в: S_IRWXO | S_IRWXG |
S_IRWXU

и биты, указанные в Umask процесса должны быть очищены.

ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ


Ассоциация c99 утилита должна соответствовать тому Базовые определения POSIX.1-2008, Раздел
12.2, утилита Синтаксис Инструкции, Кроме этого:

* Опции могут чередоваться с операндами.

* Порядок указания −L и параметры, и порядок указания кредита
в отношении пути операнды имеют значение.

* В соответствующих заявках каждый вариант указывается отдельно; то есть вариант группировки
буквы (например, −сО) не обязательно распознавать все реализации.

Поддерживаются следующие варианты:

−с Подавить этап редактирования ссылки при компиляции и не удалять какие-либо объекты.
файлы, которые создаются.

−D имя[=ценностное ]
определять имя как будто на языке Си #define директива. Если нет =ценностное дано
значение 1 должно использоваться. В −D опция имеет более низкий приоритет, чем −U опцию.
То есть если имя используется как в −U и еще один −D вариант, имя не будет определено
независимо от порядка вариантов. Дополнительная реализация определяется имяs
может быть предоставлен компилятором. Реализации должны поддерживать не менее 2048
байты −D определений и 256 имена.

−Э Скопируйте исходные файлы на языке C в стандартный вывод, развернув весь препроцессор
директивы; компиляция не производится. Если какой-либо операнд не является текстом
файл, эффекты не указаны.

−г Создавать символическую информацию в объектных или исполняемых файлах; природа
эта информация не указана и может быть изменена в зависимости от реализации.
взаимодействие с другими вариантами.

−я каталог
Изменить алгоритм поиска заголовков, имена которых не являются абсолютными
пути для поиска в каталоге, названном каталог путь до
ищу в обычных местах. Таким образом, заголовки, имена которых заключены в двойные
цитаты ("") следует искать сначала в каталоге файла с
#включают строку, затем в каталогах, названных в −я варианты, и последний в обычном
места. Для заголовков, имена которых заключены в угловые скобки ("<>")
заголовок следует искать только в каталогах, указанных в −я варианты, а затем в
обычные места. Каталоги, названные в −я варианты ищутся в порядке
указано. Если −я опция используется для указания каталога, который является одним из
обычные места, поиск которых ведется по умолчанию, результаты не указаны. Реализации
должен поддерживать не менее десяти экземпляров этой опции в одном c99 команду
призыв.

−L каталог
Измените алгоритм поиска библиотек, названных в возражает против
посмотрите в каталог, названный каталог путь перед поиском в
обычные места. Каталоги, названные в −L варианты ищутся в порядке
указано. Если −L опция используется для указания каталога, который является одним из
обычные места, поиск которых ведется по умолчанию, результаты не указаны. Реализации
должен поддерживать не менее десяти экземпляров этой опции в одном c99 команду
призыв. Если каталог, указанный −L опция содержит файлы с именами
начиная с любой из строк "libc.", "libl.", "libpthread.", "libm.",
"librt.", "libtrace"., "libxnet."или "либы"., результаты не указаны.

библиотека
Найдите библиотеку с именем библиотека.а. В библиотеке должен производиться поиск, когда она
имя встречается, поэтому размещение вариант значительный. Несколько
стандартные библиотеки могут быть указаны таким образом, как описано в РАСШИРЕННОМ
ОПИСАНИЕ раздела. Реализации могут распознавать определенные реализацией
суффиксы кроме .a как обозначающие библиотеки.

−О уровень опций
Укажите уровень оптимизации кода. Если уровень опций параметр-аргумент - это
цифра '0', все специальные оптимизации кода должны быть отключены. Если это цифра
'1', природа оптимизации не уточняется. Если −О опция опущена,
природа оптимизации системы по умолчанию не определена. это
не указано, генерируется ли код при наличии −О 0 вариант - это
то же самое, что сгенерировано, когда −О опущено. Другой уровень опций значения могут быть
поддерживается.

−о Outfile
Используйте путь Outfile, вместо значения по умолчанию а. выход, для исполняемого файла
произведено. Если −о вариант присутствует с −с or −Э, результат не указан.

−с Создавать объектные или исполняемые файлы, или и то, и другое, из которых символьные и другие
информация, не требующаяся для правильного исполнения с использованием Exec семья, определенная в
Том Системные интерфейсы POSIX.1-2008 был удален (удален). Если
изоферменты печени −г и −с параметры присутствуют, предпринятые действия не указаны.

−U имя Удалите любое первоначальное определение имя.

Несколько экземпляров −D, −я, −L, и −U параметры могут быть указаны.

ОПЕРАНДЫ


Приложение должно гарантировать, что хотя бы один пути указан операнд. В
следующие формы для пути операнды должны поддерживаться:

.c Исходный файл на языке C, который необходимо скомпилировать и при необходимости связать. Приложение
должен гарантировать, что операнд имеет эту форму, если −с опция используется.

.a Библиотека объектных файлов, обычно создаваемая ar полезность, и прошел
прямо в редактор ссылок. Реализации могут распознавать реализацию -
определенные суффиксы кроме .a как обозначение библиотек объектных файлов.

.o Объектный файл, созданный c99 −с и перешли прямо в редактор ссылок.
Реализации могут распознавать определяемые реализацией суффиксы, отличные от .o as
обозначающие объектные файлы.

Обработка других файлов определяется реализацией.

СТАНДИН


Не используется.

ВХОД FILES


Каждый входной файл должен быть одним из следующих: текстовый файл, содержащий исходный текст на языке C.
программа, объектный файл в формате, созданном c99 −с, или библиотеку объектных файлов в
формат, полученный путем архивирования нуля или более объектных файлов с использованием ar. Реализации могут
предоставить дополнительные утилиты, которые создают файлы в этих форматах. Дополнительный входной файл
форматы определяются реализацией.

ОКРУЖАЮЩАЯ СРЕДА ПЕРЕМЕННЫЕ


Следующие переменные среды должны влиять на выполнение c99:

ДЛИННЫЙ Задайте значение по умолчанию для переменных интернационализации, которые не установлены или
нулевой. (См. Том Базовых определений POSIX.1-2008, Раздел 8.2,
Интернационализация Переменные за приоритет интернационализации
переменные, используемые для определения значений категорий локали.)

LC_ALL Если установлено непустое строковое значение, переопределить значения всех остальных
переменные интернационализации.

LC_CTYPE Определите локаль для интерпретации последовательностей байтов текстовых данных
как символы (например, однобайтовые, а не многобайтовые символы в
аргументы и входные файлы).

LC_MESSAGES
Определите языковой стандарт, который следует использовать, чтобы повлиять на формат и содержимое
диагностические сообщения записываются в стандартную ошибку.

НЛПСАТ Определите расположение каталогов сообщений для обработки LC_MESSAGES.

TMPDIR Укажите путь, который должен заменить каталог по умолчанию для временного
файлы, если есть. В XSI-совместимых системах укажите путь, который должен
переопределить каталог по умолчанию для временных файлов, если таковые имеются.

АСИНХРОННЫЙ СОБЫТИЯ


По умолчанию.

стандартный вывод


Если более одного пути операнд, оканчивающийся на .c (или, возможно, другие неуказанные суффиксы)
дано для каждого такого файла:

"% s: \ n", <пути>

может быть написано. Эти сообщения, если они написаны, должны предшествовать обработке каждого ввода.
файл; они не должны быть записаны в стандартный вывод, если они записаны в стандартный
ошибка, как описано в разделе STDERR.

Если же линия индикатора −Э указана опция, стандартный вывод должен быть текстовым файлом, представляющим
результаты этапа предварительной обработки языка; он может содержать дополнительную информацию
подходит для последующих проходов компиляции.

СТДЕРР


Стандартная ошибка должна использоваться только для диагностических сообщений. Если более одного пути
операнд, оканчивающийся на .c (или, возможно, другие неуказанные суффиксы) дается для каждого такого
файл:

"% s: \ n", <пути>

могут быть написаны, чтобы позволить идентифицировать диагностические и предупреждающие сообщения с
соответствующий входной файл. Эти сообщения, если они написаны, должны предшествовать обработке каждого
входной файл; они не должны быть записаны в стандартную ошибку, если они записаны в
стандартный вывод, как описано в разделе STDOUT.

Эта утилита может выдавать предупреждающие сообщения об определенных условиях, которые не гарантируют
возврат ошибочного (ненулевого) значения выхода.

ВЫВОД FILES


Объектные файлы, исполняемые файлы или и то, и другое создаются в неопределенных форматах. Если
путь к объектному файлу или исполняемому файлу, который будет создан c99 решает существующий
запись в каталоге для файла, который не является обычным файлом, не указано, c99 должен
пытается создать файл или выдает диагностику и завершает работу с ненулевым выходом
Статус.

РАСПРОСТРАНЕНИЯ ОПИСАНИЕ


Стандарт Библиотеки
Ассоциация c99 коммунальное предприятие признает следующее варианты стандартных библиотек:

c Эта опция должна сделать доступными все интерфейсы, указанные в Системе.
Объем интерфейсов POSIX.1-2008, за возможным исключением
интерфейсы, перечисленные как находящиеся в , , , ,
, , , , , ,
, , , , pthread_kill(), а также
pthread_sigmask() в , , интерфейсы отмечены как необязательные в
, интерфейсы помечены как ADV (консультативная информация) в и
интерфейсы, начинающиеся с префикса clock_ или time_ в . Этот вариант
не требуется, чтобы вызвать поиск в этой библиотеке.

l Эта опция должна сделать доступными все интерфейсы, требуемые языком C.
выход закон которые не доступны через c опцию.

пнить
Эта опция должна сделать доступными все интерфейсы, указанные в и
pthread_kill() и pthread_sigmask() упоминается в .
реализация может выполнять поиск в этой библиотеке при отсутствии этой опции.

m Эта опция должна сделать доступными все интерфейсы, указанные в ,
и . Реализация может искать эту библиотеку в
отсутствие этой опции.

rt Эта опция должна сделать доступными все интерфейсы, указанные в ,
, , и , интерфейсы помечены как
необязательно в , интерфейсы помечены как ADV (консультативная информация) в
, и интерфейсы, начинающиеся с префикса clock_ и time_ в
. Реализация может выполнять поиск в этой библиотеке при отсутствии этого
опцию.

прослеживать Эта опция должна сделать доступными все интерфейсы, указанные в .
реализация может выполнять поиск в этой библиотеке при отсутствии этой опции.

хнет Эта опция должна сделать доступными все интерфейсы, указанные в ,
, , и . Реализация
может выполнять поиск в этой библиотеке при отсутствии этой опции.

y Эта опция должна сделать доступными все интерфейсы, требуемые языком C.
выход Yacc которые не доступны через c опцию.

При отсутствии параметров, запрещающих вызов редактора ссылок, таких как −с or −Э,
домен c99 полезность должна вызывать эквивалент c возможность перейти по ссылке
редактор после последнего пути операнд или вариант, в результате чего его поиск все-таки
загружаются другие объектные файлы и библиотеки.

Не указано, являются ли библиотеки libc.a, библиотека, libm.a, libpthread.a, либрт.а,
libtrace.a, libxnet.aили Ливия существуют как обычные файлы. Реализация может принимать как
опции-аргументы имена объектов, которые не существуют как обычные файлы.

Внешний Символы
Компилятор C и редактор ссылок должны поддерживать значение внешних символов до
длина не менее 31 байта; действия, предпринимаемые при обнаружении символов, превышающих
максимальная длина символа, определяемая реализацией, не указана.

Компилятор и редактор ссылок должны поддерживать как минимум 511 внешних символов для каждого источника или
объектный файл и всего не менее 4095 внешних символов. Диагностическое сообщение должно
записываться в стандартный вывод, если превышен предел, определенный реализацией; разное
действия не указаны.

заголовок Поиск
Если файл с тем же именем, что и один из стандартных заголовков, определенных в Базе
Том определений POSIX.1-2008, Глава 13, Заголовки, не предусмотренных в рамках
реализация, размещается в любом из обычных мест, в которых по умолчанию выполняется поиск
заголовки, результаты не указаны.

Программирование Среды
Все реализации должны поддерживать одну из следующих сред программирования в качестве
дефолт. Реализации могут поддерживать более одного из следующих программ
среды. Приложения могут использовать системная конфигурация() или получить конф чтобы определить, какое программирование
среды поддерживаются.

Настольные 4-4: Программирование Среды: Тип Размеры

┌─────────────────────────┬─────────┬──────────┬──── ─────┬─────────┐
Программирование Окружающая средаБиты inБиты inБиты inБиты in
получить конф ИмяIntдлиннойуказательoff_t
├─────────────────────────┼─────────┼──────────┼──── ─────┼─────────┤
│_POSIX_V7_ILP32_OFF32 │ 32 │ 32 │ 32 │ 32 │
│_POSIX_V7_ILP32_OFFBIG │ 32 │ 32 │ 32 │ ≥64 │
│_POSIX_V7_LP64_OFF64 │ 32 │ 64 │ 64 │ 64 │
│_POSIX_V7_LPBIG_OFFBIG │ ≥32 │ ≥64 │ ≥64 │ ≥64 │
└─────────────────────────┴─────────┴──────────┴──── ─────┴─────────┘
Все реализации должны поддерживать одну или несколько сред, в которых ширина
следующие типы не превышают ширину шрифта длинной:

blksize_t ptrdiff_t tcflag_t
cc_t размер_t wchar_t
режим_t скорость_t зима_т
nfds_t ssize_t
пид_т suсекунды_t

Исполняемые файлы, созданные при выборе этих сред, должны быть в надлежащем
формат для исполнения Exec семейство функций. Каждая среда может быть одной из
те в Настольные 4-4, Программирование Среды: Тип Размеры, или это может быть другая среда.
Имена сред, отвечающих этому требованию, должны выводиться получить конф
команда с использованием аргумента POSIX_V7_WIDTH_RESTRICTED_ENVS в качестве -отделенный список
названий, подходящих для использования с получить конф -v вариант. Если встречается более одной среды
В соответствии с требованием, названия всех таких сред должны выводиться в отдельных строках. Любой
этих имен можно затем использовать в последующих получить конф команда для получения флагов
специфичны для этой среды со следующими суффиксами, добавленными по мере необходимости:

_CFLAGS Чтобы получить флаги компилятора C.

_LDFLAGS Чтобы получить флаги компоновщика / загрузчика.

_LIBS Чтобы получить библиотеки.

Это требование может быть удалено в будущей версии.

Когда эта утилита обрабатывает файл, содержащий функцию с именем main(), это должно быть
определен с возвращаемым типом, эквивалентным Int. Использование возврата из первоначального вызова в
main() должен быть эквивалентен (кроме вопросов языковой области) вызову
выход() с возвращенным значением. Достигнув конца первоначального вызова main() должен быть
эквивалентно вызову выход(0). Реализация не должна объявлять прототип для этого
функции.

Реализации предоставляют строки конфигурации для флагов компилятора C, флагов компоновщика / загрузчика,
и библиотеки для каждой поддерживаемой среды. Когда приложению необходимо использовать конкретный
среда программирования, а не среда программирования по умолчанию для реализации
во время компиляции приложение должно сначала убедиться, что реализация поддерживает
желаемая среда. Если желаемая среда программирования поддерживается, приложение
затем призвать c99 с соответствующими флагами компилятора C в качестве первых опций для
компилировать соответствующие флаги компоновщика / загрузчика после любых других опций, кроме но прежде
любые операнды или параметры и соответствующие библиотеки в конце операндов и
настройки.

Соответствующие приложения не должны пытаться связать объектные файлы, скомпилированные для
разные модели программирования. Приложения также должны знать, что двоичные данные, помещенные в
общая память или файлы могут не распознаваться приложениями, созданными для других
модели программирования.

Настольные 4-5: Программирование Среды: c99 аргументы

┌─────────────────────────┬──────────────────────┬── ───────────────────────────────
Программирование Окружающая среда │ │ c99 аргументы
получить конф ИмяИспользуйтеполучить конф Имя
├─────────────────────────┼──────────────────────┼── ──────────────────────────────
│_POSIX_V7_ILP32_OFF32 │ Флаги компилятора C │ POSIX_V7_ILP32_OFF32_CFLAGS │
│ │ Флаги компоновщика / загрузчика │ POSIX_V7_ILP32_OFF32_LDFLAGS │
│ │ Библиотеки │ POSIX_V7_ILP32_OFF32_LIBS │
├─────────────────────────┼──────────────────────┼── ──────────────────────────────
│_POSIX_V7_ILP32_OFFBIG │ Флаги компилятора C │ POSIX_V7_ILP32_OFFBIG_CFLAGS │
│ │ Флаги компоновщика / загрузчика │ POSIX_V7_ILP32_OFFBIG_LDFLAGS │
│ │ Библиотеки │ POSIX_V7_ILP32_OFFBIG_LIBS │
├─────────────────────────┼──────────────────────┼── ──────────────────────────────
│_POSIX_V7_LP64_OFF64 │ Флаги компилятора C │ POSIX_V7_LP64_OFF64_CFLAGS │
│ │ Флаги компоновщика / загрузчика │ POSIX_V7_LP64_OFF64_LDFLAGS │
│ │ Библиотеки │ POSIX_V7_LP64_OFF64_LIBS │
├─────────────────────────┼──────────────────────┼── ──────────────────────────────
│_POSIX_V7_LPBIG_OFFBIG │ Флаги компилятора C │ POSIX_V7_LPBIG_OFFBIG_CFLAGS │
│ │ Флаги компоновщика / загрузчика │ POSIX_V7_LPBIG_OFFBIG_LDFLAGS │
│ │ Библиотеки │ POSIX_V7_LPBIG_OFFBIG_LIBS │
└─────────────────────────┴──────────────────────┴── ──────────────────────────────
В дополнение к средам программирования размера шрифта, описанным выше, все реализации также
поддерживать многопоточную среду программирования, ортогональную всем
перечисленные выше среды программирования. В получить конф утилиту можно использовать для получения флагов для
среда многопоточного программирования, как указано в Настольные 4-6, С резьбой Программирование
Окружающая среда: c99 аргументы.

Настольные 4-6: С резьбой Программирование Окружающая среда: c99 аргументы

┌─────────────────────────┬──────────────────────┬── ──────────────────────────
Программирование Окружающая среда │ │ c99 аргументы
получить конф ИмяИспользуйтеполучить конф Имя
├─────────────────────────┼──────────────────────┼── ──────────────────────────
│_POSIX_THREADS │ Флаги компилятора C │ POSIX_V7_THREADS_CFLAGS │
│ │ Флаги компоновщика / загрузчика │ POSIX_V7_THREADS_LDFLAGS │
└─────────────────────────┴──────────────────────┴── ──────────────────────────
Эти флаги среды программирования могут использоваться в сочетании с любым размером шрифта.
среды программирования, поддерживаемые реализацией.

ВЫХОД статус


Должны быть возвращены следующие значения выхода:

0 Успешная компиляция или редактирование ссылки.

> 0 Произошла ошибка.

ПОСЛЕДСТВИЯ OF ОШИБКИ


После появления c99 обнаруживает ошибку компиляции, из-за которой объектный файл не создается, он
должен написать диагностику стандартной ошибки и продолжить компиляцию другого исходного кода
операндов, но он не должен выполнять фазу связи и возвращать ненулевой статус выхода. Если
редактирование ссылки не выполнено, диагностическое сообщение должно быть записано в стандартную ошибку и
c99 выходит с ненулевым статусом. Соответствующее приложение должно полагаться на статус выхода.
of c99, а не о существовании или режиме исполняемого файла.

Ассоциация после разделах Он информативный.

ЗАЯВЛЕНИЕ ИСПОЛЬЗОВАНИЕ


С c99 утилита обычно создает файлы в текущем каталоге во время
процесс компиляции, как правило, необходимо запустить c99 утилита в каталоге в
который может быть создан файл.

В системах, обеспечивающих соответствие POSIX (см. Том Базовых определений POSIX.1-2008,
Глава 2, Соответствие), c99 требуется только с опцией C-Language Development; XSI-
соответствующие системы всегда предоставляют c99.

Некоторые исторические реализации создали .o файлы, когда −с не указано и более
дается более одного исходного файла. Поскольку эта область не указана, приложение не может
полагаться на .o файлы создаются, но он также должен быть подготовлен для любых связанных .o файлы, которые
уже существуют и удаляются по завершении редактирования ссылки.

Это может означать, что если пользователь предоставляет версии стандарта
функции (до того, как с ними столкнется неявный c или явный m), тот
эти версии будут использоваться вместо стандартных. Есть разные причины
это может быть неправдой (функции, определенные как макросы, манипуляции для чистого пространства имен,
и так далее), поэтому наличие файлов, названных так же, как и стандартные библиотеки
в −L каталоги явно указаны для получения неопределенного поведения.

Все функции, указанные в томе Системные интерфейсы POSIX.1-2008, могут быть выполнены
видны реализациям при поиске в стандартной библиотеке C. Соответствие
приложения должны явно запрашивать поиск в других стандартных библиотеках, когда функции
становятся видимыми этими библиотеками.

В стандарте ISO C отображение символов физического источника на исходный код C
набор символов определяется реализацией. Реализации могут удалять символы пробела.
до прекращения (физической) линии как часть этого отображения и, как
вследствие этого один или несколько символов пробела (и никакие другие символы) между
а характер и символ, завершающий строку, производит
результаты, определяемые реализацией. Переносимые приложения не должны использовать такие конструкции.

Некоторые c99 компиляторы, не соответствующие POSIX.1-2008, по умолчанию не поддерживают триграфы.

ПРИМЕРЫ


1. Следующий пример использования компилирует foo.c и создает исполняемый файл Foo:

c99 −о Foo foo.c

Следующий пример использования компилирует foo.c и создает объектный файл фу.о:

c99 −с foo.c

Следующий пример использования компилирует foo.c и создает исполняемый файл а. выход:

c99 foo.c

Следующий пример использования компилирует foo.c, связывает его с бар.о, и создает
запускаемый файл а. выход. Он также может создавать и оставлять фу.о:

c99 foo.c бар.о

2. В следующем примере показано, как приложение, использующее интерфейсы потоков, может тестировать
поддержка и использование среды программирования, поддерживающей 32-битную Int, длиннойи указатель
типы и off_t введите не менее 64 бит:

offbig_env = $ (getconf _POSIX_V7_ILP32_OFFBIG)
if [ $ offbig_env != "-1" ] && [ $ offbig_env != "неопределенный" ]
тогда
c99 $ (getconf POSIX_V7_ILP32_OFFBIG_CFLAGS) \
$ (getconf POSIX_V7_THREADS_CFLAGS) -D_XOPEN_SOURCE = 700 \
$ (getconf POSIX_V7_ILP32_OFFBIG_LDFLAGS) \
$ (getconf POSIX_V7_THREADS_LDFLAGS) foo.c -o Foo \
$ (getconf POSIX_V7_ILP32_OFFBIG_LIBS) \
-l пнить
еще
эхо ILP32_OFFBIG Программирование охрана окружающей среды не поддержал
выход 1
fi

3. Следующие ниже примеры поясняют использование и взаимодействие −L и настройки.

Рассмотрим случай, когда модуль ac вызывает функцию f() в библиотеке libQ.a, и модуль
до нашей эры вызывает функцию g() в библиотеке libp.a. Предположим, что обе библиотеки находятся в
/ а / б / с. Командная строка для компиляции и компоновки желаемым образом:

c99 −L / а / б / с main.o ac Q до нашей эры p

В этом случае −L вариант должен только предшествовать первому вариант, поскольку оба libQ.a
и libp.a находятся в том же каталоге.

множественный −L параметры могут использоваться при конфликте имен библиотек. Опираясь на
В предыдущем примере предположим, что пользователь хочет использовать новый libp.a и отправлять адресату / а / а / а, Но
все еще хочет f() из /a/b/c/libQ.a:

c99 −L / а / а / а −L / а / б / с main.o ac Q до нашей эры p

В этом примере компоновщик ищет −L варианты в указанном порядке и находит
/а/а/а/libp.а до /a/b/c/libp.a при разрешении ссылок для до нашей эры, Получатель чего-то
домен варианты по-прежнему важны.

4. В следующем примере показано, как приложение может использовать среду программирования, в которой
ширины следующих типов: blksize_t, cc_t, режим_t, nfds_t, пид_т, ptrdiff_t,
размер_t, скорость_t, ssize_t, suсекунды_t, tcflag_t, wchar_t, зима_т

не больше ширины шрифта длинной:

# First укажите one of домен в списке средах ...

# ... если дополнительных ограничений нет, подойдет первое:
CENV = $ (getconf POSIX_V7_WIDTH_RESTRICTED_ENVS | голова -nl)

# ... или, если предпочтительна среда, поддерживающая большие файлы,
# ищем имена, содержащие "OFF64" или "OFFBIG". (Это выбирает
# последний в списке, если нет совпадений.)
для CENV в $ (getconf POSIX_V7_WIDTH_RESTRICTED_ENVS)
do
case $ CENV в
* OFF64 * | * OFFBIG *) break ;;
ESAC
сделанный

# Выбранное имя среды теперь можно использовать так:

c99 $ (getconf $ {CENV} _CFLAGS) -D _POSIX_C_SOURCE = 200809L \
$ (getconf $ {CENV} _LDFLAGS) foo.c -o foo \
$ (getconf $ {CENV} _LIBS)

ОБОСНОВАНИЕ


Ассоциация c99 утилита основана на c89 утилита, изначально представленная в ISO POSIX ‐ 2: 1993
стандарт.

Некоторые изменения от c89 включить возможность перемежать параметры и операнды
(который многие c89 реализации разрешены, несмотря на то, что это не указано), описание
of как вариант вместо операнда, и изменение содержимого
Раздел стандартных библиотек для учета новых заголовков и опций; Например,
добавлен в описание rtи прослеживать добавлен для опции отслеживания.

POSIX.1-2008 определяет, что c99 утилита должна уметь использовать обычные файлы для * .o
файлы и для а. выход файлы. Реализации могут перезаписывать существующие файлы других
типы при попытке создать объектные файлы и исполняемые файлы, но не требуются для
Сделай так. Если указано что-то иное, чем обычный файл, и его использование не работает ни для каких
причина, c99 требуется для выдачи диагностического сообщения и выхода с ненулевым выходом
статус. Но для некоторых типов файлов проблема может долгое время не замечаться. За
Например, если FIFO с именем а. выход существует в текущем каталоге, c99 может попытаться открыть
а. выход и будет висеть в открытый(), пока другой процесс не откроет FIFO для чтения.
Затем c99 может написать большую часть а. выход в FIFO и терпит неудачу, когда пытается вернуться близко
в начало файла, чтобы вставить метку времени (FIFO не являются файлами, доступными для поиска). В c99
утилите также разрешено немедленно выдать диагностику, если она обнаруживает а. выход or * .o
файл, который не является обычным файлом. Для портативного использования приложения должны гарантировать, что любой
а. выход, −о параметр-аргумент, или * .o файлы, соответствующие любому * .c файлы не конфликтуют
с уже используемыми именами, которые не являются обычными файлами или символическими ссылками, указывающими на
обычные файлы.

Во многих системах многопоточные приложения работают в среде программирования, которая
отличается от того, что используется однопоточными приложениями. Это многопоточное программирование
окружающая среда (помимо необходимости указывать пнить во время ссылки) может потребоваться
дополнительные флаги, которые должны быть установлены при обработке заголовков во время компиляции (−D_REENTRANT не являетесь
общий). Эта среда программирования ортогональна программированию размера шрифта.
среды, обсуждаемые выше и перечисленные в Настольные 4-4, Программирование Среды: Тип
Размеры. Эта версия стандарта добавляет получить конф вызовы служебных программ для обеспечения компилятора C
flags и флаги компоновщика / загрузчика, необходимые для поддержки многопоточных приложений. Обратите внимание, что на
система, в которой однопоточные приложения являются частным случаем многопоточной
приложение, оба из них получить конф вызовы могут возвращать NULL-строки; на других реализациях
обе эти строки могут быть ненулевыми.

Комитет по стандартизации языка Си изобрел триграфы (например, "??!" представлять '|'), Чтобы
решать проблемы переносимости персонажей в средах разработки на основе национальных
варианты 7-битного стандартного набора символов ISO / IEC 646: 1991. Однако эти среды
были уже устаревшими к тому времени, когда был опубликован первый стандарт ISO C, и на практике
триграфы не использовались по прямому назначению и обычно предназначены для
их первоначальное значение в K&R C. Например, на практике исходная строка на языке C, такая как
"Что??!" обычно заканчивается на два персонажи и
, не в '|'.

БУДУЩЕЕ НАПРАВЛЕНИЯ


Нет.

Используйте c99posix онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

  • 1
    IPerf2
    IPerf2
    Инструмент для измерения сетевого трафика
    Производительность TCP и UDP с метриками
    вокруг пропускной способности и задержки. В
    цели включают поддержание активного
    iperf треска ...
    Скачать IPerf2
  • 2
    fre: ac - бесплатный аудио конвертер
    fre: ac - бесплатный аудио конвертер
    fre:ac — бесплатный аудио конвертер и компакт-диск
    риппер для различных форматов и кодировщиков.
    Он поддерживает форматы MP3, MP4/M4A, WMA, Ogg.
    Форматы Vorbis, FLAC, AAC и Bonk
    служба поддержки, ...
    Скачать fre:ac - бесплатный аудио конвертер
  • 3
    Матплотлиб
    Матплотлиб
    Matplotlib - обширная библиотека
    для создания статических, анимированных и
    интерактивные визуализации на Python.
    Matplotlib упрощает простые вещи и
    трудная вещь ...
    Скачать Matplotlib
  • 4
    БотМан
    БотМан
    Напишите логику чат-бота один раз и
    подключите его к одному из доступных
    службы обмена сообщениями, включая Amazon
    Alexa, Facebook Messenger, Slack,
    Telegram или даже йо...
    Скачать BotMan
  • 5
    Джоплин
    Джоплин
    Joplin - это бесплатный и открытый исходный код
    приложение для заметок и дел, которое
    может обрабатывать большое количество заметок в
    Формат Markdown, организуйте их в
    записные книжки и ...
    Скачать Joplin
  • 6
    gerbv — просмотрщик Gerber (RS-274X)
    gerbv — просмотрщик Gerber (RS-274X)
    Gerbv — файл Gerber с открытым исходным кодом.
    (только для RS-274X) средство просмотра. Gerbv позволяет вам
    загрузить несколько файлов друг на друга,
    делать измерения на отображаемом изображении,
    так далее. ...
    Скачать gerbv — просмотрщик Gerber (RS-274X)
  • Больше »

Команды Linux

Ad