tmpnam函数怎么使用

C/C++ code

#include <cstdio>
#include <iostream>


int _tmain(int argc, _TCHAR* argv[])
{
        using namespace std;
    cout << "This system can generate up to " << TMP_MAX
        << " temporary names of up to " << L_tmpnam
        << " characters.\n";
    char pszName [ L_tmpnam ] = { '\0' };
    cout << "Here are ten names:\n";
    for (int i = 0; 10 > i; i++)
    {
        tempnam (pszName, "abc");
        cout << pszName << endl;
    }

    return 0;
}


程序显示14行空白

书本只简单的告诉该函数可以生成临时文件
tempnam ()第二个参数是什么意思,不太明白。如果只提供第一个参数,提示参数太少
百科说它是一个c函数?

作者: guangdongmutou   发布时间: 2011-01-29

第二个参数是生成的临时文件名的前缀,比如如果第二个参数传"abc",临时文件名开头就是"abc".

作者: guoxuqu   发布时间: 2011-01-29

为什么vs2010环境下生成的文件名是空行?
引用 1 楼 guoxuqu 的回复:

第二个参数是生成的临时文件名的前缀,比如如果第二个参数传"abc",临时文件名开头就是"abc".

作者: guangdongmutou   发布时间: 2011-01-29

char *str = tempnam (pszName, "abc");
返回生成的pszName增加abc为前缀的字串,指向一个临时文件名字,如果次临时文件存在,返回NULL。
使用后要free释放str。


作者: zjw6861982   发布时间: 2011-01-29

为什么上面程序显示了14个空行
名字呢?
引用 3 楼 zjw6861982 的回复:

char *str = tempnam (pszName, "abc");
返回生成的pszName增加abc为前缀的字串,指向一个临时文件名字,如果次临时文件存在,返回NULL。
使用后要free释放str。

作者: guangdongmutou   发布时间: 2011-01-29

考虑第一个参数吧。要知道这个函数是根据四步规则来决定目录的。

作者: itslmde   发布时间: 2011-01-29