char, unsigned char и побайтовое чтение из файла размера очередной порции данных

Часто данные в файле записываются в виде: сколько-то байтов - размер очередной порции, затем - собственно данные. Изучал код на Си, читающий такой файл, и наткнулся на следующую конструкцию:
char sizeLow, sizeHigh;
int size;
FILE * pFile;
pFile = fopen ("myfile.bin" , "rb");
fread (&sizeHigh, 1, 1, pFile);
fread (&sizeLow, 1, 1, pFile);
size = (sizeHigh << 8) | sizeLow; 
Выяснилось, что после такого чтения size легко может оказаться отрицательным, даже если и был записан вполне себе положительным (например, если первый байт был равен 0x1, а второй - 0xff).

Linux: запуск программы на одном процессоре

В многопроцессорных системах иногда полезно в целях отладки (или, например, измерения производительности) запускать программу только на одном процессоре. Это можно сделать в Linux с помощью команды:
taskset -c 0 ./program_name
Это команда запускает процесс с заданным свойством CPU affinity; оно, в свою очередь, определяет список процессоров, на которых планировщик может запускать данный процесс. В данном примере оно позволяет планировщику запускать заданный процесс только на ядре номер 0. Можно также указать несколько номеров через запятую.

QtCreator: Could not load shared library symbols при попытке отладки консольного приложения

При поптыке отладки консольного приложения в QtCreator столкнулся с такой ошибкой:
Could not load shared library symbols for library_name.so. Do you need "set solib-search-path" or "set sysroot"?
При этом все пути в системе были выставлены правильно. Решение оказалось довольно простое - на вкладке Projects->Run нужно снять галочку "Run in terminal". Тогда приложение запускается в консоли QtCreator, а не в отдельном терминале и все библиотеки находятся.

Одновременное отображение вывода программы в терминале и запись его в файл

Чтобы и увидеть вывод программы в терминале и записать его в файл, можно воспользоваться командой tee:
program | tee filename.log

Linux: Получение количества потоков в процессоре в командной строке

Чтобы узнать количество потоков, которые процессор может одновременно выполнять, можно выполнить команду:
cat /proc/cpuinfo | grep processor | wc -l
Выводится сожержимое файла /proc/cpuinfo, из него берутся строчки, содержащие слово "processor", а команда "wc -l" считает количество поданных ей на вход строчек. Вывод этой команды, например, удобно передавать в make для параллельной сборки:
make -j 'cat /proc/cpuinfo | grep processor | wc -l'
UPD: более короткая весрия той же команды:
grep processor /proc/cpuinfo | wc -l

Linux: команды командной строки для просмотра размера директорий

Команда:
ls -l
не дает размера директории. Чтобы узнать его, можно воспользоваться командой:
du -hs /path-to-directory
-h дает размеры в "human readable" виде,
-s - summary, без нее команда du выдаст не только размер заданной директории, но также и размеры всего, что в ней находится.
Команда:
du -h --max-depth=1 /path-to-directory
Выдаст размеры всех поддиректорий в заданной директории. Ну и для просмотра занятого и свободного места на диске можно воспользоваться командой: df