2014-06-15 38 views
-3

嗨我正在編寫掛載服務器文件夾的C程序。我嘗試了下面的代碼,但它不起作用(打印消息錯誤1操作不允許,一旦我用sudo運行它我得到錯誤22 ivalid參數)。這對我來說很怪異。任何想法/建議?裝載服務器文件夾的C代碼

#include <sys/mount.h> 
int main(){ 
const char* server_src_path="ip_address:/myfolder"; 
const char* local_path="/myLocalFolder"; 
const char* filesystem="nfs"; 
mount(server_src_path, local_path,filesystem, MS_MGC_VAL | MS_RDONLY | MS_NOSUID, ""); 
printf("error message %d %s\n",errno, strerror(errno)); 
return 0; 
} 
+0

在這裏堆棧溢出,你會發現像你這樣的問題不會給你一個答案,並且一般不鼓勵。 –

+1

可能是server_src_path或本地路徑錯誤。或者你沒有運行所需的功能。無論哪種方式,它會返回一個錯誤代碼來幫助,但是現在它的問題在指定的範圍之內。 – Flexo

+0

「沒有工作」非常非常含糊。請更具體一些。爲此,請至少檢查返回代碼,並與我們分享errno中的錯誤代碼。 ......也許errno甚至會幫助你自己解決我們的問題? – Christophe

回答

1

簡單地參考了mount手冊頁(在2,對於系統調用的API部分),您可以與man 2 mount

  1. 你缺少第三個參數,filesystemtype看,這應該是一個編譯錯誤,除非你的原型被嚴重破壞。
  2. 您的server_src_pathlocal_path是未聲明的標識符,這是編譯錯誤。
  3. 您沒有檢查返回值或errno。通常,perror有助於獲取錯誤的可讀描述。

當你確定你得到了什麼錯誤時,同一個手冊頁會告訴你這個函數在什麼情況下會產生這個錯誤。

相關問題