Книга розробка додатків в середовищі linux (2-е видання)

14.4.1. Проходження по каталогу

Якщо потрібно перечитати вміст каталогу, вже відкритого Пренс ( »г (), за допомогою ген) .п» И »г () структура 01И скидається, паби наступний виклик ГЕА» И »г () міг повернути перший файл в каталозі.

1ПС ген1пбб1г (01И * б1г);

Найскладнішою частиною цього процесу є визначення помилки. На жаль, ГЕА ») 01г () повертає Нцьь, і коли відбувається помилка, і коли в каталозі більше немає елементів. Щоб розрізняти ці дві ситуації, необхідно перевіряти еггпо. Це завдання угложняется тим, що ГЕА »И» г () не змінює еггпо, поки не відбудеться помилка. Це означає, що для коректної перевірки помилок еггпо необхідно встановити перед викликом геасИ1 »() в заздалегідь певне значення (зазвичай 0). Ні) ке показана проста програма, що записує імена файлів поточного каталогу в вИоц (.

250 Частина а). системно ірегремміреееііе

14.5. Універсалізація файлових імен

Більшість користувачів [лппх приймають як долкнае то, по знпуск 1в *. з не сообшает відомості про фото в поточному каталозі, ім'ям якого є *. с. Замість цього вони очікують побачити список всіх фнйвов в поточному каталозі, імена яких закінчуються на. с. Ця розширення імені файлу від *. з до 1апвь. з п1тсаасеасн. з [наприклад) зазвичай обробляється оболонкою, яка ушшереалнеірует всі параметри для програм, що виконуються під її управлінням. Програми, які допомагають користувачам маніпулювати Файв, таке часто потребують універсалізації файнових імен. Існують два найпоширеніші способи універсалізації імен файлів всередині програм.

14.5.1. Використання подпроцесса

В: 1ае іа1а (ьае агцс, сосні сЬаг ** агцт)

Схожі статті