Xreferat.com » Рефераты по информатике и программированию » Разработка статических и динамических библиотек на языке программирования С/C++ в операционных системах UNIX

Разработка статических и динамических библиотек на языке программирования С/C++ в операционных системах UNIX

libsysur.so


Создаем основную программу:


"sysur.c" :


#include <stdio.h>

#include <dlfcn.h>

#include "mytype.h"


int main(int argc, char* argv[]){


void *ext_library; //хандлер внешней функции

double a11;double a12; double a21; double a22;

double b1; double b2;

double (*powerfunc)(double a11,double a12, double a21, double a22,double b1, double b2);//переменная, для хранения адреса функции


//загрузка библиотеки

ext_library=dlopen("/root/dynamik/libsysur.so",RTLD_LAZY);

if (!ext_library){

//если ошибка, вывести на экран

fprintf(stderr,"dlopen() error: %sn", dlerror());

return 1;

};


//загружаем из библиотеки требуемую процедуру

powerfunc=dlsym(ext_library, argv[1]); //получаем адрес требуемой функции

//ext_library-адрес загруженной библ.

//argv-требуемая функция или переменная


printf("Vvedite a11 a12 :");

scanf("%lf %lf",&a11,&a12);

printf("Vvedite a21 a22 :");

scanf("%lf %lf",&a21,&a22);

printf("Vvedite b1, b2 :");

scanf("%lf %lf",&b1,&b2);


struct DPair sq=(*powerfunc)(a11,a12,a21,a22,b1,b2);

printf("x1=%lfn, x2=%dlf",sq.first,sq.second);

//выводим результат работы процедуры


//закрываем библиотеку

dlclose(ext_library);

};


Компилируем код главной программы:


bash -3.00# gcc sysur.c -o sysur -ldl


Выводы


В курсовой работе были рассмотрены рассмотрены вопросы разработки статических и динамических библиотек на языке программирования С/C++ в операционных системах UNIX.

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

Объектные библиотеки по способу использования разделяются на статические и динамические библиотеки

Статическая библиотека - это коллекция объектных файлов, которые присоединяются к программе во время линковки программы. В работе самой программы статические библиотеки они не принимают участие, в отличие от динамических библиотек.

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

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

Список использований литературы


club.shelek/

helpsite.narod/

myforum/index.php?

ishodniki/

Робин Бурк и др. Unix для системных администраторов.Энциклопедия пользователя. - Киев 1998. - 864с.

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: