.i - файл C, обработанный препроцессором
.C, .cc, .cpp - C++ файл
.ii - файл C++, обработанный препроцессором
.o - объектный файл
.a - файл библиотеки
Примеры работы компилятора:
hw.c - простая программа вывода текста на консоль.
Листинг программы hw.c:
#include <stdio.h>
int main()
{
printf("Hello, World!\n");
}
Компиляция программы:
$ qcc 1_hw.c -o hw
Результат работы программы:
$ ./hw
Hello, World!
hw_tofile - простая программы вывода текста в файл
Листинг программы hw_tofile.c:
#include <stdio.h>
int main()
{
FILE *file;
file = fopen("/home/m15hgun/lab1/hello_world", "w");
fprintf(file, "Hello, World!\n");
}
Компиляция программы:
$ qcc 2_hw_tofile.c -o hw_tofile
Запуск программы:
$ ./hw_tofile
$ cat hello_world
Hello, World!
cla.c - программа, проверяющая возможность открытия файла.
Листинг программы cla.c:
#include <stdio.h>
int main(int argc, char *argv[])
{
if (argc > 1)
{
if (fopen(argv[1],"r") == NULL)
{
printf("%s: could'n open file %s\n",argv[0], argv[1]);
}
else
{
printf("%s: file %s sucessfully opened\n", argv[0], argv[1]);
}
}
else
{
printf("%s: please indicate file for open\n", argv[0]);
}
}
Компиляция программы:
$ qcc 3_cla.c -o cla
Запуск программы:
$ ./cla hello_world
./cla: file hello_world sucessfully opened
$ ./cla abc
./cla: could'n open file abc
$ ./cla
./cla: please indicate file for open
gcc
gcc - компилятор
Синтаксис:
gcc [опции|имя_файла]
gcc [опции|имя_файла]
Некоторые опции:
c - только компиляция
-o - задание файла вывода
Описание:
gcc - набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU. Используется как стандартный компилятор в Unix-подобных операционных системах и некоторых проприетарных ОС. В QNX вместо gcc рекомендуется использовать компилятор qcc/QCC.
cc¸CC
cc - компилятор для С, СС - компилятор С++. В QNX cc и СС являются ссылками на gcc.
Для демонстрации возможностей конвейера были разработаны две программы:
file_name.c - программа, выводящая аргумент командной строки в stdin.
Листинг программы file_name.c:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
if (argc < 2)
{
fprintf(stderr, "%s: please indicate file for open\n", argv[0]);
exit(1);
}
else
{
printf("%s", argv[1]);
}
exit(0);
}
cla_pipe - программа, проверяющая возможность открытия файла, получает имя файла из stdin
Листинг программы cla_pipe.c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i = 0;
char buf[2047];
buf[0] = getc(stdin);
while( !feof(stdin) )
{
i++;
if (i < 2047)
{
buf[i] = getc(stdin);
}
else
{
break;
}
}
buf[i]='\0';
if (buf[0] != '\0')
{
if (fopen(buf,"r") == NULL)
{
printf("%s: could'n open file %s\n",argv[0], buf);
}
else
{
printf("%s: file %s sucessfully opened\n", argv[0], buf);
}
}
else
{
printf("%s: please indicate file for open\n", argv[0]);
}
exit(0);
}
Компиляция программ:
$ qcc 4_file_name.c -o file_name
$ qcc 5_cla_pipe.c -o pipe
Примеры работы программ:
$ ./file_name hello_world | ./pipe
./pipe: file hello_world sucessfully opened
$ ./file_name | ./pipe
./file_name: please indicate file for open
./pipe: please indicate file for open
$ ./file_name abc | ./pipe
./pipe: could'n open file abc
$ ./file_name hello_world || ./pipe
hello_world$
$ ./file_name hello_world && ./pipe
hello_world./pipe: please indicate file for open
Из примеров выше можно сделать следующие выводы по работе конвейеров.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.