читать лучше с начала!
На сайті розглядаються основи роботи з мультимедійною інформацією на персональному комп'ютері. Описано ряд програм для закису, обробки й відтворення звуку й зображення.
Представлено деякі Wіndows-програми комунікацій реального часу ( ІP-Телефонії).
Також сайт присвячен розробці власних програм для роботи з аудио й відео, передачі звукової й візуальної інформації в локальних мережах і Інтернеті.
Серед наших користувачів, як правило, користувачі комп'ютера в дома й в офіса, так і на починаючих розроблювачів програмного забезпечення - ми даємо основи програмування в середовищі Borland C++ Buіlder. Наша аудиторія - це, перш за все, школярі старших класів, студенти і широке коло людей, що просто використовують комп'ютер вдома й на роботі.
Напомним, мы не предоставляем готовые программы, у нас Вы не сможете скачать офис, антивирус или игру ни платно, ни бесплатно!
ПОЯСНЕННЯ
Рядка 3-7 визначають включаються файлы, щоМ, які використовує дана
програма. Вам необхідно вивчити ці файли, оскільки вони не тільки
допоможуть вам зрозуміти роботу цієї програми, але й покажуть вам деякі
важливі значення, що мають відношення до файлових систем.
Рядок 9 визначає розмір використовуваного буфера. Цей буфер приміняється тільки для зберігання повідомлень про помилки, тому він не ділдружин бути дуже більшим.
Рядок 15 визначає структуру суперблоку. Він має тип filesys
(см. файл, що включається, sys/types.h). На моїй машині суперблок має размер 1024 байта. Якщо ви не знаєте точно розмір буфера у вас, то ви можете перевірити його, вставивши в програму наступний оператор:
printf ("the size is %d",sizeof(sb))
Рядок 16 описує робочу змінну d і дескриптор файлу dev.
Рядок 17 повідомляє буфер розміром BSIZE.
Рядка 19-59 - це один великий цикл for. Цей цикл представляє
собою всю іншу частину програми. Він виконується стільки разів,
скільки аргументів зазначено в командному рядку. Лічильник циклу начинается з 1, оскільки першим аргументом argv[0] є ім'я команди. В
якості аргументів повинні бути зазначені імена файлів, тому даний
цикл використовує кожне ім'я по черзі.
У рядках 21-26 перевіряється, чи не починається поточний рассматриваемый нами аргумент зі знака '-'. Якщо так, то це опція, що
являє собою помилку, тому виводиться повідомлення про помилку й
оператор continue викликає виконання наступної ітерації циклу. Таким
образом, дана програма відкидає опції, але працює при виявленні
імен файлів.
Уважаючи, що ім'я файлу було знайдено, рядка 27-32 відкривають файл
пристрою із цим ім'ям тільки для читання. Якщо даний виклик open неудалий, ми посилаємо повідомлення в буфер разом з ім'ям, зазначеним у домандной рядку. Цей буфер передається програмі обробки помилок
(системної), що використовує наше повідомлення як першу частину свого
повідомлення про помилку. Вона виводить системне повідомлення, що определяет дану помилку. По операторі continue починається виконання слідующей ітерації циклу for.
Рядка 35-39 читають перший блок файлу. Для кореневий файлової
системи першим блоком є завантажувальний запис. Якщо при цьому чтении виникає помилка, виводиться повідомлення про помилку й виконання циклу
триває.
Рядка 42-46 читають другий блок, що повинен перебувати в тім
місці, де розміщається суперблок, якщо він є. За інформацією, прочитаної й поміщеної в структуру, ми можемо одержати доступ до кожному
елементу по його ім'ю.
Рядок 48 перевіряє, дорівнює чи магічне число в структурі магическому числу, певному у файлі заголовка. Якщо вони збігаються,
програма mntlook виводить ім'я файлу пристрою й повідомлення про те, що
файлова система коректна, ім'я файлової системи (якщо воно є),
ім'я пакета дисків, розмір використовуваного блоку й магічне число в
шестнадцатиричном виді.
У рядках 53-54 ми маємо подобу кодованої структури: оператор
printf використовує структуру типу if-then-else для вказівки рядка, доторую потрібно виводити. Після того як виведена перший рядок, выполняется перевірка і якщо вона пройшла успішно, те виводиться значення 512.
Якщо в результаті перевірки отримане значення "неправда", виводиться значение 1024. Цей метод описаний у книзі B.W.Kernighan, D.M.Ritchie "The C
Programming Language" (Prentice-Hall, 1978).
Рядок 58 закриває пристрій, і цикл вертається в
початок для прийняття наступного ім'я пристрою.
[
...]
Початок [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211] [212] [213] [214] [215] [216] [217] [218] [219] [220] [221] [222] [223] [224] [225] [226] [227] [228] [229] [230] [231] [232] [233] [234] [235] [236] [237] [238] [239] [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260] [261] [262] [263] [264] [265] [266] [267] [268] [269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281] [282] [283] [284] [285] [286] [287] [288] [289] [290] [291] [292] [293] [294] [295] [296] [297] [298] [299] [300] [301] [302] [303] [304] [305] [306] [307] [308] [309] [310] [311] [312] [313] [314] [315] [316] [317] [318] [319] [320] [321] [322] [323] [324] [325] [326] [327] [328] [329] [330] [331] [332] [333] [334] [335] [336] [337] [338] [339] [340] [341] [342] [343] [344] [345] [346] [347] [348] [349] [350] [351] [352] [353] [354] [355] [356] [357] [358] [359] [360] [361] [362] [363] [364] [365] [366] [367] [368] [369] [370] [371] [372] [373] [374] [375] [376] [377] [378] [379] [380] [381] [382] [383] [384] [385] [386] [387] [388] [389] [390] [391] [392] [393] [394] [395] [396] [397] [398] [399] [400] [401] [402] [403] [404] [405] [406] [407] [408] [409] [410] [411] [412] [413] [414] [415] [416] [417] [418] [419] [420] [421] [422] [423] [424] [425] [426] [427] [428] [429] [430] [431] [432] [433] [434] [435] [436] [437] [438] [439] [440]