我想在Linux上的设备文件(scsi文件sdb,sdc ...)上编写自己的标记。
我在open()
文件上使用linux C read()
,write()
,/dev/sdb
函数,在此文件中写入我的密钥。但是当usb磁盘设备从计算机拔出并重新插入时,在/dev/sdb
的密钥中,有时它已经消失,或者不稳定。
我不知道为什么。
char readBuf[512] = { 0 };
char key[12] = "h%27dcd*()jd";
int fd = open("/dev/sdb",O_RDWR);
lseek(fd,1024,SEEK_SET);
read(fd,readBuf,512);
for(int i=0; i<sizeof key; ++i)
{
readBuf[i] = ~key[i];
}
lseek(fd,1024,SEEK_SET);
write(fd,readBuf,512);
//In order to mark the Usb disk bear fruit...
答案 0 :(得分:0)
用于设置固定安装点:
您可以使用/dev/sdb
规则和udev
为USB设备分配静态挂载点(如symlink
)。您可以通过供应商ID 和产品ID 来识别udev规则中的设备,...
ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="my_device"
https://unix.stackexchange.com/questions/66901/how-to-bind-usb-device-under-a-static-name
用于逐位写入棒上的特定内存位置:
以字节方式将数据写入块设备上的任意块,使用dd
(https://en.wikipedia.org/wiki/Dd_(Unix))之类的工具。文件io工具如read()
,write()
不能用于按字节顺序写入而不使用文件......