在我的程序中,我使用basename函數來獲取分區。 第一,我寫了,如果喜歡這句話:這兩個代碼塊有什麼區別?
if (!strncmp(buf,
basename("/dev/mmcblk0p3"),
strlen(basename("/dev/mmcblk0p3"))) {
ret = 1;
} else {
ret = 0;
}
BUF點串 「mmcblk0p3」,但RET = 0,用gdb,我發現基本名稱( 「的/ dev/mmcblk0p3」)返回一個怪異的串,但是當我改變這樣的程序:
char *p = NULL;
p = basename("/dev/mmcblk0p3");
if (!strncmp(buf, p, strlen(p)) {
ret = 1;
} else {
ret = 0;
}
ret是1,程序運行正常。有什麼不同? basename不能像這樣使用?編譯環境是armel7v/gcc。
什麼是'buf'?那裏有什麼? –