第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 x 模式下的 fopen 給我“無法打開流:沒有這樣的文件或目錄”

為什么 x 模式下的 fopen 給我“無法打開流:沒有這樣的文件或目錄”

PHP
catspeake 2021-07-15 14:02:43
我想使用模式 x 因為正如我從 php.net 看到的那樣,如果文件存在,它會給出錯誤并返回 false,如果不存在,它會創(chuàng)建它(也是目錄的)。這是腳本。它位于 www.ex.com/s/index.php$urlParts = "/img/logo.png"; $fp = fopen( __DIR__ . $urlParts, "x" );如果它不存在,這應該創(chuàng)建 logo.png(并創(chuàng)建目錄 /img/)...但它不是這樣工作的。任何人都可以幫忙嗎?謝謝!
查看完整描述

1 回答

?
慕尼黑5688855

TA貢獻1848條經(jīng)驗 獲得超2個贊

fopen("/img/logo.png","x");

在任何情況下它都不會創(chuàng)建 img 目錄。如果目錄不存在,那么它總是會拋出這個警告。


警告:fopen(/img/logo.png):無法打開流:沒有那個文件或目錄


fopen("logo.png","x");

如果 logo.png 尚不存在,那么它將在沒有任何警告的情況下創(chuàng)建它。如果 logo.png 已經(jīng)存在,那么它總是會拋出這個警告。


警告:fopen(logo.png):無法打開流:沒有這樣的文件或目錄


fopen("","x") 相當于為底層 open(2) 系統(tǒng)調(diào)用指定 O_EXCL|O_CREAT 標志?,F(xiàn)在讓我來幫助您了解為什么會發(fā)生這種情況。


在 POSIX 中,如果文件不存在,則 O_CREAT 標志會導致創(chuàng)建文件。如果包含 O_CREAT 標志,則還必須將第三個參數(shù)傳遞給 open 以指定權限。如果您想避免覆蓋現(xiàn)有文件,請使用組合 O_CREAT | O_EXCL。如果文件已存在,則此組合將返回錯誤。


使用 POSIX 的 C 程序


#include <fcntl.h>

#include <sys/stat.h>

int open(const char *path, int oflag, ...);

結(jié)論:因此,只有當我們想避免覆蓋現(xiàn)有文件時,我們才會使用“x”模式。


查看完整回答
反對 回復 2021-07-16
  • 1 回答
  • 0 關注
  • 368 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號