09.htm ( File view )

  • By 2010-08-02
  • View(s):4
  • Download(s):0
  • Point(s): 1
			<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0056)http://linux.tcpip.com.cn/~foolox/c_fun/function/09.html -->
<HTML><HEAD><TITLE>Untitled Document</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY>
<TABLE width="100%">
  <TBODY>
  <TR>
    <TD vAlign=top width=80>  
      <DIV align=right><BR><FONT face=宋体 size=2><A 
      name=linuxc133></A></FONT></DIV></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2><BR></FONT></DIV></TD>
    <TD><FONT face=宋体 size=2><BR>close(关闭文件) </FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD>
    <TD><FONT face=宋体 
size=2>open,fcntl,shutdown,unlink,fclose<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>表头文件 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>#include&lt;unistd.h&gt;<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>定义函数 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>int close(int fd);<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>函数说明 </FONT></DIV></TD>
    <TD><FONT face=宋体 
      size=2>当使用完文件后若已不再需要则可使用close()关闭该文件,二close()会让数据写回磁盘,并释放该文件所占用的资源。参数fd为先前由open()或creat()所返回的文件描述词。<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>返回值 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>若文件顺利关闭则返回0,发生错误时返回-1。<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>错误代码 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>EBADF 参数fd 非有效的文件描述词或该文件已关闭。<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>附加说明 </FONT></DIV></TD>
    <TD><FONT face=宋体 
      size=2>虽然在进程结束时,系统会自动关闭已打开的文件,但仍建议自行关闭文件,并确实检查返回值。<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>范例 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>参考open()<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>  
      <DIV align=right><BR><FONT face=宋体 size=2><A 
      name=linuxc134></A></FONT></DIV></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2><BR></FONT></DIV></TD>
    <TD><FONT face=宋体 size=2><BR>creat(建立文件) </FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD>
    <TD><FONT face=宋体 
      size=2>read,write,fcntl,close,link,stat,umask,unlink,fopen<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>表头文件 </FONT></DIV></TD>
    <TD><FONT face=宋体 
      size=2>#include&lt;sys/types.h&gt;<BR>#include&lt;sys/stat.h&gt;<BR>#include&lt;fcntl.h&gt;<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>定义函数 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>int creat(const char * pathname, 
      mode_tmode);<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>函数说明 </FONT></DIV></TD>
    <TD><FONT face=宋体 
      size=2>参数pathname指向欲建立的文件路径字符串。Creat()相当于使用下列的调用方式调用open()<BR>open(const 
      char * pathname ,(O_CREAT|O_WRONLY|O_TRUNC));<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>错误代码 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>关于参数mode请参考open()函数。<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>返回值 </FONT></DIV></TD>
    <TD><FONT face=宋体 
      size=2>creat()会返回新的文件描述词,若有错误发生则会返回-1,并把错误代码设给errno。<BR>EEXIST 
      参数pathname所指的文件已存在。<BR>EACCESS 参数pathname 所指定的文件不符合所要求测试的权限<BR>EROFS 
      欲打开写入权限的文件存在于只读文件系统内<BR>EFAULT 参数pathname 指针超出可存取的内存空间<BR>EINVAL 参数mode 
      不正确。<BR>ENAMETOOLONG 参数pathname太长。<BR>ENOTDIR 参数pathname为一目录<BR>ENOMEM 
      核心内存不足<BR>ELOOP 参数pathname有过多符号连接问题。<BR>EMFILE 已达到进程可同时打开的文件数上限<BR>ENFILE 
      已达到系统可同时打开的文件数上限<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>附加说明 </FONT></DIV></TD>
    <TD><FONT face=宋体 
  size=2>creat()无法建立特别的装置文件,如果需要请使用mknod()。<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>范例 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>请参考open()。<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>  
      <DIV align=right><BR><FONT face=宋体 size=2><A 
      name=linuxc135></A></FONT></DIV></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2><BR></FONT></DIV></TD>
    <TD><FONT face=宋体 size=2><BR>dup(复制文件描述词) </FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>open,close,fcntl,dup2<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>表头文件 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>#include&lt;unistd.h&gt;<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>定义函数 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>int dup (int oldfd);<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>函数说明 </FONT></DIV></TD>
    <TD><FONT face=宋体 
      size=2>dup()用来复制参数oldfd所指的文件描述词,并将它返回。此新的文件描述词和参数oldfd指的是同一个文件,共享所有的锁定、读写位置和各项权限或旗标。例如,当利用lseek()对某个文件描述词作用时,另一个文件描述词的读写位置也会随着改变。不过,文件描述词之间并不共享close-on-exec旗标。<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>返回值 </FONT></DIV></TD>
    <TD><FONT face=宋体 
      size=2>当复制成功时,则返回最小及尚未使用的文件描述词。若有错误则返回-1,errno会存放错误代码。错误代码EBADF参数fd非有效的文件描述词,或该文件已关闭。<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>  
      <DIV align=right><BR><FONT face=宋体 size=2><A 
      name=linuxc136></A></FONT></DIV></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2><BR></FONT></DIV></TD>
    <TD><FONT face=宋体 size=2><BR>dup2(复制文件描述词) </FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>open,close,fcntl,dup<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>表头文件 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>#include&lt;unistd.h&gt;<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>定义函数 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>int dup2(int odlfd,int newfd);<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>函数说明 </FONT></DIV></TD>
    <TD><FONT face=宋体 
      size=2>dup2()用来复制参数oldfd所指的文件描述词,并将它拷贝至参数newfd后一块返回。若参数newfd为一已打开的文件描述词,则newfd所指的文件会先被关闭。dup2()所复制的文件描述词,与原来的文件描述词共享各种文件状态,详情可参考dup()。<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>返回值 </FONT></DIV></TD>
    <TD><FONT face=宋体 
      size=2>当复制成功时,则返回最小及尚未使用的文件描述词。若有错误则返回-1,errno会存放错误代码。<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>附加说明 </FONT></DIV></TD>
    <TD><FONT face=宋体 
      size=2>dup2()相当于调用fcntl(oldfd,F_DUPFD,newfd);请参考fcntl()。<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>错误代码 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>EBADF 参数fd 非有效的文件描述词,或该文件已关闭<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>  
      <DIV align=right><BR><FONT face=宋体 size=2><A 
      name=linuxc137></A></FONT></DIV></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2><BR></FONT></DIV></TD>
    <TD><FONT face=宋体 size=2><BR>fcntl(文件描述词操作) </FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>open,flock<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=r
...
...
(Not finished, please download and read the complete file)
			
...
Expand> <Close

Want complete source code? Download it here

Point(s): 1

Download
0 lines left, continue to read
Sponsored links

File list

Tips: You can preview the content of files by clicking file names^_^
Name Size Date
Linux-C函数-信号处理篇.htm552.00 B19-05-08|10:27
Linux-C函数-内存及字符串操作篇.htm568.00 B19-05-08|10:27
Linux-C函数-内存控制篇.htm552.00 B19-05-08|10:27
Linux-C函数-字符串转换篇.htm556.00 B19-05-08|10:27
Linux-C函数-字符测试篇.htm552.00 B19-05-08|10:27
Linux-C函数-常用数学函数篇.htm560.00 B19-05-08|10:27
Linux-C函数-接口处理篇.htm552.00 B19-05-08|10:27
Linux-C函数-数据结构及算法篇.htm564.00 B19-05-08|10:27
Linux-C函数-文件内容操作篇.htm560.00 B19-05-08|10:27
Linux-C函数-文件操作篇.htm552.00 B19-05-08|10:27
Linux-C函数-文件权限控制篇.htm560.00 B19-05-08|10:27
Linux-C函数-日期时间篇.htm552.00 B19-05-08|10:27
Linux-C函数-环境变量篇.htm552.00 B19-05-08|10:27
Linux-C函数-用户组篇.htm548.00 B19-05-08|10:27
Linux-C函数-终端控制篇.htm552.00 B19-05-08|10:27
Linux-C函数-进程操作篇.htm552.00 B19-05-08|10:27
11.htm72.14 kB19-05-08|10:27
left.htm36.58 kB19-05-08|10:27
16.htm9.46 kB19-05-08|10:27
left.htm36.58 kB19-05-08|10:27
07.htm76.70 kB19-05-08|10:27
left.htm36.58 kB19-05-08|10:27
15.htm6.96 kB19-05-08|10:27
left.htm36.58 kB19-05-08|10:27
04.htm18.86 kB19-05-08|10:27
left.htm36.58 kB19-05-08|10:27
12.htm67.83 kB19-05-08|10:27
left.htm36.58 kB19-05-08|10:27
09.htm30.28 kB19-05-08|10:27
left.htm36.58 kB19-05-08|10:27
10.htm49.96 kB19-05-08|10:27
left.htm36.58 kB19-05-08|10:27
08.htm18.21 kB19-05-08|10:27
left.htm36.58 kB19-05-08|10:27
14.htm58.14 kB19-05-08|10:27
left.htm36.58 kB19-05-08|10:27
06.htm39.94 kB19-05-08|10:27
left.htm36.58 kB19-05-08|10:27
01.htm27.35 kB19-05-08|10:27
left.htm36.58 kB19-05-08|10:27
02.htm23.47 kB19-05-08|10:27
left.htm36.58 kB19-05-08|10:27
03.htm14.07 kB19-05-08|10:27
left.htm36.58 kB19-05-08|10:27
05.htm58.64 kB19-05-08|10:27
left.htm36.58 kB19-05-08|10:27
13.htm40.40 kB19-05-08|10:27
left.htm36.58 kB19-05-08|10:27
Linux-C函数-进程操作篇.files0.00 B11-08-08|17:48
Linux-C函数-终端控制篇.files0.00 B11-08-08|17:48
Linux-C函数-用户组篇.files0.00 B11-08-08|17:48
Linux-C函数-环境变量篇.files0.00 B11-08-08|17:48
Linux-C函数-日期时间篇.files0.00 B11-08-08|17:48
Linux-C函数-文件权限控制篇.files0.00 B11-08-08|17:48
Linux-C函数-文件操作篇.files0.00 B11-08-08|17:48
Linux-C函数-文件内容操作篇.files0.00 B11-08-08|17:48
Linux-C函数-数据结构及算法篇.files0.00 B11-08-08|17:48
Linux-C函数-接口处理篇.files0.00 B11-08-08|17:48
Linux-C函数-常用数学函数篇.files0.00 B11-08-08|17:48
Linux-C函数-字符测试篇.files0.00 B11-08-08|17:48
Linux-C函数-字符串转换篇.files0.00 B11-08-08|17:48
Linux-C函数-内存控制篇.files0.00 B11-08-08|17:48
Linux-C函数-内存及字符串操作篇.files0.00 B11-08-08|17:48
Linux-C函数-信号处理篇.files0.00 B11-08-08|17:48
Linux-C0.00 B11-08-08|17:48
...
Sponsored links

09.htm (131.54 kB)

Need 1 point
Your Point(s)

Your Point isn't enough.

Get point immediately by PayPal

More(Debit card / Credit card / PayPal Credit / Online Banking)

Submit your source codes. Get more point

LOGIN

Don't have an account? Register now
Need any help?
Mail to: support@codeforge.com

切换到中文版?

CodeForge Chinese Version
CodeForge English Version

Where are you going?

^_^"Oops ...

Sorry!This guy is mysterious, its blog hasn't been opened, try another, please!
OK

Warm tip!

CodeForge to FavoriteFavorite by Ctrl+D