Вход/Регистрация
Разработка приложений в среде Linux. Второе издание
вернуться

Троан Эрик В.

Шрифт:

 71:

 72: name = argv[0];

 73: phone = argv[1];

 74:

 75: /* открыть базу данных для записи */

 76: if (!(dp = openDatabase(1))) return 1;

 77:

 78: /* если не перезаписывается существующий элемент,

 79: проверить, не используется ли уже это имя */

 80: if (!overwrite) {

 81: flag = DP_DKEEP;

 82: } else {

 83: flag = DP_DOVER;

 84: }

 85:

 86: if (!dpput(dp, name, -1, phone, -1, flag)) {

 87: if (dpecode == DP_EKEEP) {

 88: fprintf(stderr, "%s уже существует\n", name);

 89: } else {

 90: fprintf(stderr, "сбой записи: %s\n", dperrmsg(dpecode));

 91: }

 92:

 93: rc = 1;

 94: }

 95:

 96: dpclose(dp);

 97:

 98: return rc;

 99: }

100:

101: /* найти имя и вывести номер телефона, с которым оно связано;

102: напрямую разобрать командную строку */

103: int queryRecord(int argc, char ** argv) {

104: DEPOT * dp;

105: int rc;

106: char * phone;

107:

108: /* ожидается только один аргумент, имя для поиска */

109: if (argc != 1) usage;

110:

111: /* открыть базу данных для чтения */

112: if (!(dp = openDatabase(0))) return 1;

113:

114: phone = dpget(dp, argv[0], -1, 0, -1, NULL);

115: if (!phone) {

116: if (dpecode == DP_ENOITEM)

117: fprintf(stderr, "%s не существует\n", argv[0]);

118: else

119: fprintf(stderr, "ошибка чтения базы данных: %s\n"

120: dperrmsg(dpecode));

121:

122: rc = 1;

123: } else {

124: printf("%s %s\n", argv[0], (char *) phone);

125: rc = 0;

126: }

127:

128: dpclose(dp);

129:

130: return rc;

131: }

132:

133: /* удалить определенную запись; имя передается в качестве

134: аргумента командной строки */

135: int delRecord(int argc, char ** argv) {

136: DEPOT * dp;

137: int rc;

138:

139: /* ожидается только один аргумент */

140: if (argc != 1) usage;

141:

142: /* открыть базу данных для обновления */

143: if (!(dp = openDatabase(1))) return 1;

144:

145: if (!(rc = dpout(dp, argv[0], -1))) {

146: if (dpecode == DP_ENOITEM)

147: fprintf(stderr, "%s не существует\n", argv[0]);

148: else

149: fprintf(stderr, "ошибка удаления элемента: %s\n",

150: dperrmsg(dpecode));

151:

152: rc = 1;

153: }

154:

155: dpclose(dp);

156:

157: return rc;

158: }

159:

160: /* вывести список всех записей, имеющихся в базе данных */

161: int listRecords(void) {

162: DEPOT * dp;

163: char * key, * value;

  • Читать дальше
  • 1
  • ...
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: