對於我的任務,我已經寫一個函數來創建一個目錄,但我不能在所有使用SYS功能!有沒有其他方法?我一直在尋找它,但沒有找到任何真正有用的東西。該函數至少必須在Linux上工作。在C程序製作目錄
在C程序製作目錄
回答
嘗試
#include <direct.h>
int _mkdir(const char *dirname);
據我所知,直接庫是爲微軟窗口。我的程序必須在Linux上運行。 –
您還可以檢查system()
功能。
#include <stdlib.h>
int system(const char *command);
我不允許使用此功能。 –
那麼你允許使用哪些函數/頭文件? –
這應該在Linux上運行(不知道你的意思「SYS功能」是什麼,所以它可能是不允許的):
#include <sys/stat.h>
mkdir("/tmp/foobar", 0);
謝謝你回答,但我不允許使用sys/stat.h庫。 –
@MohammedFarahmand:'sys/stat.h'不是「*庫*」,而是頭文件。 – alk
如果限制爲「不能使用在聲明的任何功能包含以sys開頭的文件「,這聽起來更像是一個難題,而不是編程練習。然而...
您可以編寫一個首先調用fork
,然後在孩子叫execl
一個函數(或exec*
家族的另一種功能,如果看起來像一個更好的選擇)。無論fork
和exec*
可用,並且聲明一次#include <unistd.h>
已運行。不幸的是,這會在你每次打電話時都會留下一個殭屍,因爲你不能在電話後面打電話waitpid
清理。
或者,你可以簡單地聲明自己mkdir
,int mkdir(const char*, unsigned int);
。
這是我不太清楚這兩個解決方案之一是最差的,但他們都不是東西,我希望在任何接近「正常的代碼」。
是的,這真的很令人不安。我的大多數同學現在正在給我們的助教發送消息......這個工作是否有彙編代碼? –
根據mkdir
功能的人頁,https://linux.die.net/man/3/mkdir它期望的路徑(char *
)和數據類型mode_t
的模式作爲參數,模式mode_t
在sys/stat.h
定義我想嘗試仿效在頭文件中定義mode_t
結構。 http://pubs.opengroup.org/onlinepubs/7908799/xsh/sysstat.h.html
- 1. 用c程序製作一個目錄
- 2. 在C中的多線程應用程序中製作一個目錄樹
- 3. 製作目錄名只讀在C#
- 4. 在C程序中查找目錄
- 5. 編譯時在Visual C++中更改程序的工作目錄
- 6. 在C程序中更改Linux shell中的工作目錄
- 7. 在Windows上錄製聲音作爲C#程序的一部分
- 8. 在PHP中製作目錄
- 9. 在php中製作目錄
- 10. C++程序如何製作?
- 11. C#更改制作程序
- 12. 在Linux上爲C程序製作makefile
- 13. 製作自己的'tar'程序...如何用C代碼創建文件/目錄?
- 14. C中的多線程目錄工作
- 15. 目錄監視器的c程序
- 16. Unix c程序遞歸列出目錄
- 17. Objective-C中的程序目錄(OSX)
- 18. Cakephp複製整個應用程序目錄和子目錄?
- 19. C程序目錄掃描器只能用於一個目錄
- 20. 簡單的如何製作應用程序目錄路徑
- 21. 定義執行程序的工作目錄(C#)
- 22. 帶命令行應用程序的MacOSX C++工作目錄
- 23. 應用程序工作目錄(VB.NET)
- 24. NSIS卸載程序工作目錄
- 25. 製作鍵盤記錄程序
- 26. 製作程序自動登錄到twitch.tv
- 27. 複製目錄到輸出目錄 - 控制檯應用程序.NET
- 28. 如何在C#中製作產品目錄?
- 29. 目標C鏈接程序作用域
- 30. c#控制檯應用程序的記錄器應用程序
我投票關閉這一問題作爲題外話,因爲它顯然是寫我的代碼的請求,而不是一個問題。請先閱讀[問]頁面。 :) –
到目前爲止請顯示您的研究/調試工作。請先閱讀[問]頁面。 –
我讀過了,我什麼也沒找到。我看過的每個代碼都使用了library/stat.h或其他系統函數。是的,這是寫我的代碼請求,因爲我還沒有找到它。如果你知道一個函數的名字,我會檢查如何使用它。 –