粗略算一下,在第一次接觸OSX的時候,我接觸Windows已經有14年,剛開始用OSX和Xcode各種不習慣,但是用Xcode寫了一星期的代碼,我卻有一種想把Windows和VS扔了的感覺(真的用着很舒服!)。
最近寫Cocoa,需要對磁盤等設備文件進行操作,當然首先我想到的是Windows中的CreateFile這個API,在查詢一些資料以後發現,OSX是基於BSD SYSTEM後代,那麼我們只需要使用int open(const char *pathname, int oflag, ... );
m_fp = open("/dev/disk0s1", O_RDWR);
if (m_fp == -1)
{
NSLog(@"error : %i",errno);
}
else
{
NSLog(@"Open device or file success!\n");
}
當然,返回了-1,我查看errno = 13 (權限不夠),當然第一次玩UNIX這類的系統我挺沒轍的,心想找找類似於管理員權限運行的選項,並沒有,後來我發現了以下方法(以Root權限運行):
打開 Terminal 輸入:
sudo /Applications/Xcode.app/Contents/MacOS/Xcode
再鍵入你的 Password後,root模式啓動Xcode成功。
至於sudo後面的路徑而言,在OSX下的Applications文件夾下的所有程式其實都是一個Package Contents,我們打開Package Contents以後發現,裏面是一個目錄,類似於Windows的程式風格,在MacOS下有個同名的exec文件,纔是類似於Windows的.exe的主程式文件,我們需要root執行的也就是它了。