Читаем Linux: Полное руководство полностью

 g_print("DNS1 %s\n", dns1);

 g_print("DNS2 %s\n", dns2);


 /* Перезаписываем файл resolv.conf в текущем каталоге */

 if ((resolv = fopen("resolv.conf","w")) == NULL) {

  /* Наверное, нет места на диске или прав маловато... */

  g_print("ERR: Cannot open resolve.conf file\n");

  gtk_main_quit();

 }


 /* Запись в файл */

 fprintf(resolv,"domain %s\n",domain);

 fprintf(resolv, "nameserver %s\n",dns1);

 fprintf(resolv,"nameserver %s\n*,dns2);

 fclose(resolv);

}

Если ваше окно должно содержать много надписей, то я рекомендую вам поступать так: объявить всего одну переменную, затем создать надпись, поместить ее в контейнер, затем опять создать надпись с использованием этой же переменной, поместить ее в контейнер и т.д. Примерно так:

label = gtk_label_new("Domain: ");


gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);

gtk_widget_show(label);


label = gtk_label_new("DNS #1; ");

gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);

gtk_widget_show (label);


label = gtk_label_new("DNS #2: ");

gtk_table_attach_defaults (GTK_TABLE(table), label, 0, 1, 2, 3);

gtk_widget_show (label);

Листинг 23.6 содержит полный код конфигуратора Resolver.

Листинг 23.6. Файл resolver.c

#include

#include

#include


gchar *domain, *dns1, *dns2;


/* Массив из трех полей ввода. Первое предназначено для

 ввода имени домена, два вторых - [1] и [2] - для ввода

 IP-адресов серверов DNS */

GtkWidget *edit[3];


/* Наш файл */

FILE *resolv;


/* Функция записи в файл */

void writetofile(GtkWidget *widget, gpointer data) {

 /* С помощью функции gtk_entry_get_text() мы получаем

  введенный пользователем текст из полей ввода */

 domain = gtk_entry_get_text(GTK_ENTRY(edit[0]));

 dns1 = gtk_entry_get_text(GTK_ENTRY(edit[1]));

 dns2 = gtk_entry_get_text(GTK_ENTRY(edit[2]));


 /* Выводим прочитанный текст на консоль */

 g_print("Domain %s\n", domain);

 g_print("DNS1 %s\n", dns1);

 g_print("DNS2 %s\n", dns2);


 /* Перезаписываем файл resolv.conf в текущем каталоге */

 if ((resolv = fopen("resolv.conf","w")) == NULL) {

  /* Наверное, нет места на диске или прав маловато... */

  g_print("ERR: Cannot open resolve.conf file\n");

  gtk_main_quit();

 }


 /* Запись в файл */

 fprintf(resolv,"domain %s\n",domain);

 fprintf(resolv,"nameserver %s\n",dns1);

 fprintf(resolv,"nameserver %s\n",dns2);

 fclose(resolv);

}


/* Эта функция будет запущена, когда пользователь нажмет

кнопку закрытия окна или кнопку Quit */

gint delete_event(GtkWidget *widget, GdkEvent *event,

 gpointer data) {

 /* Функция gtk_main_quit() используется для завершения

  работы GTK-программы. Не нужно для этого использовать

 exit() */

 gtk_main_quit();

 return(FALSE);

}


/* Когда пользователь введет текст и нажмет Enter,

 введенный им текст будет выведен на консоль */

void enter_callback(GtkWidget *widget,

Перейти на страницу:

Все книги серии Полное руководство

Похожие книги

Полное руководство по Microsoft Windows XP
Полное руководство по Microsoft Windows XP

В книге известного американского автора описывается среда ОС Windows XP и принципы ее функционирования, приведен сравнительный анализ Windows XP с предшествующими версиями операционной системы Windows. Рассматриваются вопросы применения и модификации нового интерфейса с целью получения прямого доступа ко всем функциям Windows XP обсуждаются варианты подключения к компьютерным сетям. Несколько разделов посвящены работе с реестром и конфигурационными файлами, мультимедийным функциям и разнообразным системным службам, а также методам решения проблем с программным обеспечением и оборудованием. Особое внимание уделено обеспечению безопасности операционной системы.Издание адресовано пользователям и сетевым администраторам, желающим активно применять возможности операционной системы Windows XP (в том числе и недокументированные).

Питер Нортон , Джон Поль Мюллер

ОС и Сети, интернет / ОС и Сети / Книги по IT
Linux
Linux

Книга посвящена операционной системе Linux. Приводятся подробные сведения о ее особенностях и возможностях, идеологии файловой системы, инсталляции и основных командах, вопросах компиляции ядра, настройках и сервисах. Большое внимание уделяется организации на базе Linux различных серверов и служб: электронной почты, WWW, FTP, INN, Proxy, NTP, а также проблемам администрирования сети, обеспечения безопасной работы и другим вопросам. Описаны способы настройки под Linux рабочих станций, в т. ч. и бездисковых, установки и эксплуатации на них графических сред типа X Window, а также конфигурирование модемных соединений, принтеров и сканеров, отладка взаимодействия с Linux-машинами такой «экзотической» периферии, как карманные компьютеры, мобильные телефоны, TV-тюнеры и т. п. Рассматриваемые в книге конфигурационные файлы и структура каталогов соответствуют дистрибутиву Red Hat Linux 7.x, тем не менее, при минимальной адаптации все упоминаемые в книге пакеты устанавливаются в любом дистрибутиве Linux.Для начинающих администраторов или пользователей Linux.

Алексей Александрович Стахнов

ОС и Сети, интернет