С чего начинается программирование...

читать лучше с начала!

На сайті розглядаються основи роботи з мультимедійною інформацією на персональному комп'ютері. Описано ряд програм для закису, обробки й відтворення звуку й зображення.

Представлено деякі Wіndows-програми комунікацій реального часу ( ІP-Телефонії).

Також сайт присвячен розробці власних програм для роботи з аудио й відео, передачі звукової й візуальної інформації в локальних мережах і Інтернеті.

Серед наших користувачів, як правило, користувачі комп'ютера в дома й в офіса, так і на починаючих розроблювачів програмного забезпечення - ми даємо основи програмування в середовищі Borland C++ Buіlder. Наша аудиторія - це, перш за все, школярі старших класів, студенти і широке коло людей, що просто використовують комп'ютер вдома й на роботі.

ПОЯСНЕННЯ



      Першою справою ми повинні знайти у файлі termcap код очищення екрана. Для термінала Apple це код ^L, а для vt52 це \EH\EJ. Як тільки ви знайдете цей код, вставте його в оператор define у рядку 3 або відразу в оператор write у рядку 7. У наведеному прикладі як символ очищення екрана використовується ^L.

      Найбільш швидким способом передачі символу у файл є непосереднє виконання оператора write. Оскільки термінали являются файлами, ми можемо виконувати запис безпосередньо в них, користьясь перевагою визначених дескрипторів файлу 0,1 і 2.

      Системний виклик write у рядку 7 посилає символ очищення у файл із дескриптором 1, що є стандартним пристроєм висновку. Якщо операція запису невдала (з ряду причин), те у файл із дескриптором 2, т.е. на стандартний пристрій реєстрації помилок, виводиться повідомлення про помилку. Тут не перевіряється, чи успішно завершився запис на стандартний пристрій реєстрації помилок. Якщо помилка все-таки візникне, то ми її побачимо.

      Програма не використовує НІЯКИХ можливостей стандартного ввотак-висновку (stdio). НІКОЛИ не можна змішувати системні виклики уведення-вивода (тобто виклики з розділу (2) документації по системних функціях, наприклад read або write) зі стандартними викликами уведення-висновку (т.е. викликами з розділу (3), такими як getchar і printf). Додатковий буфер, що створюється при виконанні функцій stdio, не погоджений у часі із системними викликами, тому всі вихідні повідомлення перімешиваются.

      Ще один аспект, про яке ми повинні пам'ятати, приймаючи рішення про використанні системних викликів, ця перевага одержання як можна більше короткого об'єктного коду. Невелика програма завантажується й работает швидше. Для того, щоб непотрібні підпрограми стандартного уведення-висновку не включалися в наш об'єктний модуль, у вихідному тексті програми не робиться ніяких посилань на підпрограми stdio. Тим не меїї, ваша система могла їх якимсь образом включити. Так надходить XENIX, а разом з stdio викликається malloc і все інше. Ви можете переглянути таблицю символів вашого об'єктного модуля за допомогою nm(1) або nlist(2). Ви побачите все сміття, що був доданий у ваш объектный модуль. Не так рідко ми одержуємо 6 Кб коду всього лише для одного оператора printf! Привчайтеся програмувати безпосередньо на асемблері, щоб досягти того, що вам потрібно.

[...]
Початок
[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]