Размер читается из ATA Identify блока и от содержимого не зависит. Хз почему 4тб, не суть. Как ниже пишут, проверьте SMART. Но если, например, через dd ничего не читается и тот же I/O Error выдает, дела плохи
Я совершенно не разбираюсь в C#, но всё же посмею написать, если не ответ, то хотя бы коммент :)
Для начала, вы создали Thread, но не запустили его car_1.Start()
Затем, вы всё же запустили функцию car_1_race, но из GUI треда, через Invoke. Потому всё и подвисло
Наконец, из Background треда менять GUI нельзя, поэтому идея провальная изначально.
Следует запустить поток через Start(), но из самого потока вызывать делегат, который будет только обновлять состояние кнопки. То есть, в потоке - Sleep() и вызов делегата, в делегате - только "переезд кнопки" на один шаг
Проблема в том, что сложно сделать нечто универсальное. Моргать светодиодами - довольно бесполезно,а более серьезные вещи - кому нужен большой дисплей, кому - камера, и т.д. чем конкретно управлять через js? Например, есть целый мир интернета вещей, где по веб-интерфейсу можно управлять лампочками, холодильником, выключателями. Наиболее популярное высокоуровневое решение - raspberry pi, с полноценным линуксом и портами ввода-вывода. Уровнем пониже - ардуино.
Я по большей части на низком уровне обитаю, с js не дружу, мысля о скриптовом управлении железяками с завода в сознании плохо укладывается, мог чего-то не того написать :)
sddvxd: когда вы в коде пишете int i, компилятор выделяет в стеке 4 байта места под эту переменную.
Цепочки указателей в обычном случае не возникает, описанное вами похоже на связный список - каждый элемент списка содержит в начале структуры указатель на следующий элемент.
В памяти приложения может быть очень много структур, содержащих указатели на что-то ещё.
Статические элементы класса (ключевое слово static перед описанием переменной) общие для всех экземпляров. С указателями и выделением памяти не особо связано.
Когда программа запускается, система выделяет ей диапазон адресов памяти, может быть произвольным - зависит от операционной системы. В этой памяти располагается стек (в нем будут находиться в том числе и локальные переменные) и куча (динамически выделяемая память, для new и malloc).
Вот где переменная расположена, туда и будет указывать указатель. Для локальной переменной это будет участок стека, для динамически выделенной через new - место в куче.
По-моему, ардуино немного не то, там ведь все готовое. Надо модуль - покупай. Вот чтобы собрать свой девайс самостоятельно, нужно знать принцип работы электронных компонентов, базовые схемы из радиотехники, и т.д. - где об этом почитать?
ещё есть "через задницу", если у вас в структуре находятся только указатели, с которыми нужно работать:
for(int i = 0; i < sizeof(BUFF) / sizeof(int*); ++i)
delete[] ((int*)(&buff))[i];
Про автозапуск не знаю, в линуксе не спец