📄 fileexists.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3O//DTD W3 HTML 2.0//EN"><!-- This collection of hypertext pages is Copyright 1995-2005 by Steve Summit. --><!-- Content from the book "C Programming FAQs: Frequently Asked Questions" --><!-- (Addison-Wesley, 1995, ISBN 0-201-84519-9) is made available here by --><!-- permission of the author and the publisher as a service to the community. --><!-- It is intended to complement the use of the published text --><!-- and is protected by international copyright laws. --><!-- The on-line content may be accessed freely for personal use --><!-- but may not be published or retransmitted without explicit permission. --><!-- --><!-- this page built Sat Dec 24 21:47:47 2005 by faqproc version 2.7 --><!-- from source file osdepfile.sgml dated Sat Jun 26 20:52:13 2004 --><!-- corresponding to FAQ list version 4.0 --><html><!-- Mirrored from c-faq.com/osdep/fileexists.html by HTTrack Website Copier/3.x [XR&CO'2008], Sat, 14 Mar 2009 07:59:02 GMT --><head><meta name=GENERATOR content="faqproc"><title>Question 19.11</title><link href="sendmail.html" rev=precedes><link href="filesize.html" rel=precedes><link href="index.html" rev=subdocument></head><body bgcolor="#ffffff"><a href="sendmail.html" rev=precedes><img src="../images/buttonleft.gif" alt="prev"></a><a href="index.html" rev=subdocument><img src="../images/buttonup.gif" alt="up"></a><a href="filesize.html" rel=precedes><img src="../images/buttonright.gif" alt="next"></a> <a href="../index-2.html"><img src="../images/buttontop.gif" alt="top/contents"></a><a href="../search.html"><img src="../images/buttonsrch.gif" alt="search"></a><hr><p><!-- qbegin --><h1>comp.lang.c FAQ list<font color=blue>·</font><!-- qtag -->Question 19.11</h1><p><font face=Helvetica size=8 color=blue><b>Q:</b></font>How can I check whether a file exists?I want towarn the userif a requested input file is missing.</p><p><hr><p><font face=Helvetica size=8 color=blue><b>A:</b></font>It's surprisingly difficult tomake this determinationreliably and portably.Any test you make can be invalidatedif the file is created or deleted(i.e.by some other process)between the time you make the testand the time you try to open the file.</p><p>Three possible test functions are<TT>stat</TT>,<TT>access</TT>,and<TT>fopen</TT>.(Tomake an approximatetestusing<TT>fopen</TT>,just open for reading and close immediately,although failure does not necessarily indicate nonexistence.)Of these,only <TT>fopen</TT> is widely portable,and <TT>access</TT>,where it exists,must be used carefully ifthe programuses the Unixset-UIDfeature.(If you have the choice,the best compromiseis probably one of the <TT>stat</TT> functions.)</p><p>Rather than trying to predict in advancewhether an operationsuch as opening a filewill succeed,it's often better totry it,check the return value,and complain if itfails.(Obviously, this approach won't workif you're trying to avoid overwriting anexisting file, unless you've got something like the<TT>O_EXCL</TT>file openingoption available,which does just what you wantinthiscase.)</p><p>References:PCS Sec. 12 pp. 189,213<br>POSIX Sec. 5.3.1, Sec. 5.6.2, Sec. 5.6.3<br></p><!-- aend --><p><hr><a href="sendmail.html" rev=precedes><img src="../images/buttonleft.gif" alt="prev"></a><a href="index.html" rev=subdocument><img src="../images/buttonup.gif" alt="up"></a><a href="filesize.html" rel=precedes><img src="../images/buttonright.gif" alt="next"></a> <a href="../questions.html"><img src="../images/buttontop.gif" alt="contents"></a><a href="../search.html"><img src="../images/buttonsrch.gif" alt="search"></a><br><!-- lastfooter --><a href="../about.html">about this FAQ list</a> <a href="../eskimo.html">about eskimo</a> <a href="../search.html">search</a> <a href="../feedback.html">feedback</a> <a href="copyright.html">copyright</a><p>Hosted by<a href="http://www.eskimo.com/"><img src="../../www.eskimo.com/img/link/eskitiny.gif" alt="Eskimo North"></a></body><!-- Mirrored from c-faq.com/osdep/fileexists.html by HTTrack Website Copier/3.x [XR&CO'2008], Sat, 14 Mar 2009 07:59:02 GMT --></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -