C如何阻止文件被覆盖

non*_*ame -1 c unix

目前,文件已创建并被覆盖.我试图得到它,如果文件已经存在,它只是退出程序.必须使用open.

if ((dest = open(argv[2], O_WRONLY | O_CREAT, 0644)) == -1) {
    printf("Error File %s exists", argv[2]);
    return 3; 
 }
Run Code Online (Sandbox Code Playgroud)

cni*_*tar 6

只需使用O_EXCL:

O_EXCL确保此调用创建文件:如果此标志与O_CREAT(并且路径名已经存在)open()一起指定,那么将失败.