Навигатор по АКОСу.
- Main page
- Лекции 2017 года
Лекции 2018 года- Семинары 2017 года
- Семинары 2018 года
- Живые семинары
- Утилита для тестирования
Семинары с гитхаба 2018
- 01-linux intro
- 01-terminal commands
- 01-bash scripts
- 02-stdio
- 03-integers
- 04-floating
- 05-arrays
- 06-pointers (aka strings)
- 07-function-pointers
- 08-asm1
- 09-asm2
- 10-asm3
- 11-asm4
- 12-files1
- 01-intro (youtube)
- 02-integers (youtube)
- 03-floats (youtube)
- 04-environ (youtube)
- 05-struct (youtube part2)
- 06-tools (youtube)
- 07-physics (youtube)
- 08-cpu (youtube)
- 09-ram (youtube)
- youtube XX-cache,usb,bus
- 10-asm-intro (youtube part 2)
- 11-asm1 (youtube)
- 12-asm2 (youtube)
- 13-asm3 (youtube)
- 14-asm4 (youtube)
- 15-asm5 (youtube w/ 14th end)
- 16-executable (no-youtube)
- 17-syscalls (no-youtube)
- 18-perf (youtube w/ 17th end)
- 19-io (youtube)
- 20-filesystem1 (no-youtube)
- 21-filesystem2 (no-youtube)
- 22-filesystem3 (no-youtube)
- 23-nmap (no-youtube)
- 24-fork (no-youtube)
- (no-youtube)
- (no-youtube)
- (no-youtube)
Пользуемся getchar
(fgetc
) и putchar
.
Также multithread-unsafe версия getchar_unlocked
и putchar_unlocked
, которая может быть быстрее в 10 раз.
Пример посимвольного копирования:
int c; // int, чтобы можно было отличать EOF
while ((c = getchar_unlocked()) != EOF) {
putchar_unlocked(c);
}
Смотреть здесь.
TODO: GNU Toolchain, etc...
Проверить программу на утечки волгриндом:
valgrind --leak-check=full ./a.out
TODO: санитайзеры
hexdump -C dostext.c
vi, nano, tmux, mc
Основное здесь.
Главное - отступ 4 пробела, никаких табов.
struct Foo
{
int bar;
};
int *p;
char *str, **pstr;
TODO: сделать конфиг для cpplint, и выложить .vscode