Uživatel:Jkl~cswikiversity/Studuji cpp/poznamky2
Do kategorie poznamky2 chci zahrnout postřehy, které se mohou hodit při low-level programování a dále to co se dozvím na [1] a [2].
Low-level
editovatPřímý přístup do paměti:
#define VID ((unsigned (*)[80])0xB8000000) //CGA videopaměť void foo() { int *hardware_address = (int *)0x7FFF; // tohle je druhá možnost VID[4][1] = 0x1F00 | 'A'; }
Blackhole
editovat- V argv[0] je uloženo jméno procesu - pokud byl volán s cestou, tak i cesta. To elegantně obsloužíme takto:
char * progname = basename(argv[0]);
- proměnné systému
- v proměnné envp jsou proměnné systému jako pole stringů, poslení je prázdný
int main (int argc, char ** argv, char ** envp) {
- jde to ale také bez úpravy mainu, neboť by se totéž mělo vyskytovat v
char ** environ
- pro návratové hodnoty existují makra EXIT_SUCCESS a EXIT_FAILURE