2009-12-27 32 views
0

我使用的程序在對大文件使用tmpfile()時失敗。問題似乎是我沒有權限在/ tmp中創建大文件,默認情況下此功能使用此文件。那麼有沒有辦法,也許有一個環境變量,我可以讓tmpfile()寫入不同的位置?在Linux上設置tmpfile()的目錄

編輯:有問題的程序是sox,它採用C.

+0

哪種語言? – 2009-12-27 04:01:25

+0

您不可能「無權在'/ tmp'中創建大文件」。你更有可能已經填滿了你的'/ tmp'分區。爲什麼不簡單地增加'/ tmp'分區的大小? – Asaph 2009-12-27 04:22:46

+0

這是在共享服務器上,我無法控制/ tmp設置 – hoju 2009-12-27 23:59:20

回答

4

您可以使用環境變量TMPDIR來告訴TMPFILE()其中創建文件:

SH語法:

TMPDIR=/path/to/whatever; export TMPDIR 

CSH語法:

setenv TMPDIR /path/to/whatever 
1

鑑於0123的信息你可能想要:#define P_tmpdir "/somedir" 當然,這可能不太可靠。

您還可以將環境變量TMPDIR設置爲某個位置。

+1

*我的預處理器宏如何改變C庫的功能? – SamB 2011-10-14 00:55:19