2016-12-16 20 views
-2

對於我的任務,我已經寫一個函數來創建一個目錄,但我不能在所有使用SYS功能!有沒有其他方法?我一直在尋找它,但沒有找到任何真正有用的東西。該函數至少必須在Linux上工作。在C程序製作目錄

+2

我投票關閉這一問題作爲題外話,因爲它顯然是寫我的代碼的請求,而不是一個問題。請先閱讀[問]頁面。 :) –

+1

到目前爲止請顯示您的研究/調試工作。請先閱讀[問]頁面。 –

+0

我讀過了,我什麼也沒找到。我看過的每個代碼都使用了library/stat.h或其他系統函數。是的,這是寫我的代碼請求,因爲我還沒有找到它。如果你知道一個函數的名字,我會檢查如何使用它。 –

回答

-1

嘗試

#include <direct.h> 
int _mkdir(const char *dirname); 
+1

據我所知,直接庫是爲微軟窗口。我的程序必須在Linux上運行。 –

0

您還可以檢查system()功能。

#include <stdlib.h> 
int system(const char *command); 
+0

我不允許使用此功能。 –

+0

那麼你允許使用哪些函數/頭文件? –

1

這應該在Linux上運行(不知道你的意思「SYS功能」是什麼,所以它可能是不允許的):

#include <sys/stat.h>  
mkdir("/tmp/foobar", 0); 
+0

謝謝你回答,但我不允許使用sys/stat.h庫。 –

+0

@MohammedFarahmand:'sys/stat.h'不是「*庫*」,而是頭文件。 – alk

0

如果限制爲「不能使用在聲明的任何功能包含以sys開頭的文件「,這聽起來更像是一個難題,而不是編程練習。然而...

您可以編寫一個首先調用fork,然後在孩子叫execl一個函數(或exec*家族的另一種功能,如果看起來像一個更好的選擇)。無論forkexec*可用,並且聲明一次#include <unistd.h>已運行。不幸的是,這會在你每次打電話時都會留下一個殭屍,因爲你不能在電話後面打電話waitpid清理。

或者,你可以簡單地聲明自己mkdirint mkdir(const char*, unsigned int);

這是我不太清楚這兩個解決方案之一是最差的,但他們都不是東西,我希望在任何接近「正常的代碼」。

+0

是的,這真的很令人不安。我的大多數同學現在正在給我們的助教發送消息......這個工作是否有彙編代碼? –