take case in such case:
-
void test _64(void)
-
{
-
struct usb_command {
-
u_char bType;
-
u_char bReq;
-
u_short wVal;
-
u_short wIndex;
-
u_short wLen;
-
} __attribute__ ((packed));
-
-
struct usb_command cmd1, *cmd;
-
cmd = &cmd1;
-
-
cmd1.bType = 0x81;
-
cmd1.bReq = 0x82;
-
cmd1.wVal = 0x8300;
-
cmd1.wIndex = 0x8400;
-
cmd1.wLen = 0x8500
-
unsigned long long ul1 = (((cmd->wLen << 16) | cmd->wIndex))
-
-
printf("ul1 %x\n", ul1)
-
}
then what's the result of ul1?
grub 引导 freeBSD
menuentry 'FreeBSD' {
insmod ufs2
insmod bsd
search --fs-uuid --no-floppy --set=root UUID
kfreebsd /boot/kernel/kernel
kfreebsd_loadenv /boot/device.hints
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ufsid/UUID
set kFreeBSD.vfs.root.mountfrom.options=rw
}
GCC 编译链接未被调用的函数:
如果将函数先声明下,即使该函数未被任何函数调用过,这个函数仍然为被包含到代码段内。
如果函数未声明,那么该函数就不会被链接进去。
BYOBU,发现它的分屏功能非常方便:
分屏内 使用ALT+PageUP/PageDOWN 可以在当前分屏内翻页;
用 CTRL + 箭头 上下左右
int、long、long long在printf中的格式
在printf中%d用于int或者比int小的整数类型。比int小的类型被转型成int。
%ld用于long类型,%lld用于long long类型。
%x标识的数会被当成int进行读取,所以long long类型的数如果超过int的范围会被截断,得不到正确的结果。而且因为它多占了4个字节,还会影响后面的其它标识符的输出。
另外%f标识的数会被当成double读取,即取出8个字节读取。
Windows开机自启动程序的位置(XP、Win7、x64) 文件夹
1. 当前用户专有的“启动”文件夹
比较常用的一个位置,“X:\Documents and
Settings\<用户名字>“开始”菜单\程序\启动”,或者“X:\Users\<用户名字>\AppData
\Roaming\Microsoft\Windows\Start Menu\Programs\Startup”。
2. 所有用户的“启动”文件夹
同样常用的位置,“X:\Documents and Settings\All Users“开始”菜单程序启动”,或者“X:\Users\All Users\Microsoft\Windows\Start Menu\Programs\Startup”。
#ping 10 times, 10 seconds delay
#C:\Users\wyse\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
ping 127.0.0.1 -n 40
#force logoff
shutdown /f /l
make.def extra space
BSDUSB = yes
如果有该项配置后,应该去编译BSDusb stack,结果迟迟没有生效。
感觉甚是奇怪,找专家折腾了下,忽然发现“yes”后面多了个空格。
阅读(826) | 评论(0) | 转发(0) |