Интерпретаторы командной строки, страница 4

.C, .cc, .cpp - C++ файл

.ii         -           файл C++, обработанный препроцессором

.o         -           объектный файл

.a -       файл библиотеки

Примеры работы компилятора:

Листинг программы prog.c:

#include <stdio.h>

int main()

{

        printf("Hello, World! ");

}

Компиляция программы:

$ qcc  prog.c -o prog

Результат работы программы:

$ ./prog

Hello, World!

gcc

gcc - компилятор

Синтаксис:

gcc [опции|имя_файла]

gcc [опции|имя_файла]

Некоторые опции:

­c - только компиляция

-o - задание файла вывода

Описание:

gcc - набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU. Используется как стандартный компилятор в Unix-подобных операционных системах и некоторых проприетарных ОС. В QNX вместо gcc рекомендуется использовать компилятор qcc/QCC.

cc¸CC

cc - компилятор для С, СС - компилятор С++. В QNX cc и СС являются ссылками на gcc.

Напишем простейшую программу на языке С, выводящую строчку "Hello world". Сохраним её в файле prog.с. Для вызова компилятора воспользуемся командой сс (сс prog.c). В результате   создастся исполняемый файл a.out. При запуске этого файла появляется окно с надписью Hello world. Если команде сс указать флаг -о <имя_файла>, то исполняемый файл будет иметь     имя не a.out, a <имя_файла>. Создадим другую программу в файле prog2.c. Текст программы приведён ниже.

       #include <stdio.h>

       main ( argc, argv )

                   int argc;

                   char *argv [];

                   {

                               if (argc > 1) {

                                          if (fopen(argv[1],"r") == NULL) {p

                                                      printf("%s:neydacha pri popitke otkrit file %s",argv[0],argv[1]);}

                                          else

                                                      printf("%s:file %sotkrit",argv[0],argv[1]);

                                          }

                               else

                                          printf("otkrivaemii file ne ykazan");

                   }

Откомпилируем программу и создадим исполняемый файл prog2. Это делается с

помощью команды cc -o prog2 prog2.c. Если в качестве аргумента этой программе передать   имя существующего файла, выведется сообщение о том что файл открыт. Если указать несуществующий файл, появится сообщение о том, что файл открыть не удалось. Если не указывать файл в списке аргументов, то появится сообщение о том. что файл не указан.

7.

       Переделаем нашу первую программу так, чтобы она выводила имя файла (существующего или нет) Организуем конвейер. То есть у нас выход первой программы будет подаваться на вход второй.  ./file_name|./my_open - в этом случае мы видим результат выполнения второй программы, причём выдаётся сообщение, что не указан открываемый файл. Для того, чтобы передать в качестве аргумента второй программе результат выполнения первой, нужно записать следующее:

       ./my_open `./file_name`. В результате отобразится результат выполнения программы file_name.

# ./prog2 `./a.out`

./prog2:file prog.c otkrit

8.

       а)

 Команда grep сопоставляет строки исходных файлов с шаблоном, заданным ограниченным регулярным выражением. При помощи этой команды, сделаем так, чтобы команда ls -l вывела на экран только те файлы текущей директории, которые соответствуют каталогам. Для этого будем использовать конвейер. Команда будет выглядеть так: ls -l | grep d. То есть на вход команды grep d (d - шаблон, соответствующий файлу-каталогу) подаётся результат выполнения команды ls -l (список всех файлов в директории).