11.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/11.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=linuxc176></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>atexit(设置程序正常结束前调用的函数) </FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD>
    <TD><FONT face=宋体 size=2>_exit,exit,on_exit<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;stdlib.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 atexit (void 
  (*function)(void));<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>atexit()用来设置一个程序正常结束前调用的函数。当程序通过调用exit()或从main中返回时,参数function所指定的函数会先被调用,然后才真正由exit()结束程序。<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,失败原因存于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>#include&lt;stdlib.h&gt;<BR>void 
      my_exit(void)<BR>{
<BR>printf(“before exit () 
      !\n”);<BR>
}<BR>main()<BR>{
<BR>atexit 
    (my_exit);<BR>exit(0);<BR>
}<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>before exit()!<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>  
      <DIV align=right><BR><FONT face=宋体 size=2><A 
      name=linuxc177></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>execl(执行文件) </FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD>
    <TD><FONT face=宋体 
    size=2>fork,execle,execlp,execv,execve,execvp<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 execl(const char * path,const char * 
      arg,....);<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>execl()用来执行参数path字符串所代表的文件路径,接下来的参数代表执行该文件时传递过去的argv(0)、argv[1]……,最后一个参数必须用空指针(NULL)作结束。<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>#include&lt;unistd.h&gt;<BR>main()<BR>{
<BR>execl(“/bin/ls”,”ls”,”-al”,”/etc/passwd”,(char 
      * )0);<BR>
}<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>/*执行/bin/ls -al /etc/passwd */<BR>-rw-r--r-- 1 
      root root 705 Sep 3 13 :52 /etc/passwd<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>  
      <DIV align=right><BR><FONT face=宋体 size=2><A 
      name=linuxc178></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>execlp(从PATH 环境变量中查找文件并执行) </FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD>
    <TD><FONT face=宋体 
    size=2>fork,execl,execle,execv,execve,execvp<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 execlp(const char * file,const char * 
      arg,……);<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>execlp()会从PATH 
      环境变量所指的目录中查找符合参数file的文件名,找到后便执行该文件,然后将第二个以后的参数当做该文件的argv[0]、argv[1]……,最后一个参数必须用空指针(NULL)作结束。<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>参考execve()。<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>/* 执行ls -al /etc/passwd execlp()会依PATH 
      变量中的/bin找到/bin/ls 
      */<BR>#include&lt;unistd.h&gt;<BR>main()<BR>{
<BR>execlp(“ls”,”ls”,”-al”,”/etc/passwd”,(char 
      *)0);<BR>
}<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>-rw-r--r-- 1 root root 705 Sep 3 13 :52 
      /etc/passwd<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>  
      <DIV align=right><BR><FONT face=宋体 size=2><A 
      name=linuxc179></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>execv(执行文件) </FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD>
    <TD><FONT face=宋体 
    size=2>fork,execl,execle,execlp,execve,execvp<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 execv (const char * path, char * const argv[ 
      ]);<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>execv()用来执行参数path字符串所代表的文件路径,与execl()不同的地方在于execve()只需两个参数,第二个参数利用数组指针来传递给执行文件。<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>请参考execve()。<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>/* 执行/bin/ls -al /etc/passwd 
      */<BR>#include&lt;unistd.h&gt;<BR>main()<BR>{
<BR>char * argv[ 
      ]={
“ls”,”-al”,”/etc/passwd”,(char*) 
      
}
};<BR>execv(“/bin/ls”,argv);<BR>
}<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>-rw-r--r-- 1 root root 705 Sep 3 13 :52 
      /etc/passwd<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>  
      <DIV align=right><BR><FONT face=宋体 size=2><A 
      name=linuxc180></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>execve(执行文件) </FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>相关函数 </FONT></DIV></TD>
    <TD><FONT face=宋体 
    size=2>fork,execl,execle,execlp,execv,execvp<BR></FONT></TD></TR>
  <TR>
    <TD vAlign=top width=80>
      <DIV align=right><FONT face=宋体 size=2>表头文件 </FONT></DIV></TD>
   
...
...
(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

11.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