Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение
высшего профессионального образования
“Московский государственный технический университет
имени Н.Э. Баумана”
(МГТУ им. Н.Э.Баумана)
Факультет «Робототехника и комплексная автоматизация» (РК)
Кафедра «Системы автоматизированного проектирования» (РК-6)
Отчет по лабораторной работе №1
по курсу
«Разработка программных систем»
Выполнила: Митина Е.В.
группа РК6-112
Проверил: Федорук В.Г.
Подпись_________________
Дата___________________
Москва 2011
Вариант №4
Составить программу поиска в архиве (библиотеке) имен файлов, содержащих заданный прототип. Имя архива и прототипа должно передаваться программе как параметр. Для просмотра содержания архива использовать команду ar в сочетании со средствами перенаправления стандартного ввода-вывода через программный канал. Дополнительно предложить вариант решения данной задачи средствами командного процессора sh или csh.
Рекомендуется использовать системные вызовы dup, close, pipe, fork, read, execl и exit.
Текст программы
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
main(int argc,char* argv[])
{
if (argc != 3)
{
printf("parametrs <archive_name> <required_word>\n");
exit(0);
}
int readsym = 0, fds[2];
char c, *buf;
buf="";
pipe(fds);
if(fork())
{
dup2(fds[1],1);
close(fds[0]);
close(fds[1]);
execl("/usr/bin/ar","ar","-t", argv[1],NULL);
}
else
{
close(0);
dup(fds[0]);
close(fds[0]);
close(fds[1]);
execl("/bin/grep","grep",argv[2],NULL);
};
}
Результат работы программы
Архив arch.ar:
printf
fprintf
sprintf
snprintf
vprintf
vfprintf
vsprintf
vsnprintf
calloc
malloc
free
realloc
poisk arch.ar alloc
calloc
malloc
realloc