数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz

C语言的函数!

  [复制链接]
 楼主| 发表于 2004-5-9 05:31:41 | 显示全部楼层
<>函数名: localtime
功  能: 把日期和时间转变为结构
用  法: struct tm *localtime(long *clock);
程序例: <>#include &lt;time.h&gt;
#include &lt;stdio.h&gt;
#include &lt;dos.h&gt; <>int main(void)
{
   time_t timer;
   struct tm *tblock; <P>   /* gets time of day */
   timer = time(NULL); <P>   /* converts date/time to a structure */
   tblock = localtime(&amp;timer); <P>   printf("Local time is: %s", asctime(tblock)); <P>   return 0;
}
</P>
 楼主| 发表于 2004-5-9 05:32:01 | 显示全部楼层
<>函数名: lock
功  能: 设置文件共享锁
用  法: int lock(int handle, long offset, long length);
程序例: <>#include &lt;io.h&gt;
#include &lt;fcntl.h&gt;
#include &lt;sys\stat.h&gt;
#include &lt;process.h&gt;
#include &lt;share.h&gt;
#include &lt;stdio.h&gt; <>int main(void)
{
   int handle, status;
   long length; <P>   /* Must have DOS Share.exe loaded for */
   /* file locking to function properly */ <P>   handle = sopen("c:\\autoexec.bat",
      O_RDONLY,SH_DENYNO,S_IREAD); <P>   if (handle &lt; 0)
   {
      printf("sopen failed\n");
      exit(1);
   } <P>   length = filelength(handle);
   status = lock(handle,0L,length/2); <P>   if (status == 0)
      printf("lock succeeded\n");
   else
      printf("lock failed\n"); <P>   status = unlock(handle,0L,length/2); <P>   if (status == 0)
      printf("unlock succeeded\n");
   else
      printf("unlock failed\n"); <P>   close(handle);
   return 0;
}
  
</P>
 楼主| 发表于 2004-5-9 05:32:20 | 显示全部楼层
<>函数名: log
功  能: 对数函数ln(x)
用  法: double log(double x);
程序例: <>#include &lt;math.h&gt;
#include &lt;stdio.h&gt; <>int main(void)
{
   double result;
   double x = 8.6872; <P>   result = log(x);
   printf("The natural log of %lf is %lf\n", x, result); <P>   return 0;
}
  
  </P>
 楼主| 发表于 2004-5-9 05:32:38 | 显示全部楼层
<>函数名: log10
功  能: 对数函数log
用  法: double log10(double x);
程序例: <>#include &lt;math.h&gt;
#include &lt;stdio.h&gt; <>int main(void)
{
   double result;
   double x = 800.6872; <P>   result = log10(x);
   printf("The common log of %lf is %lf\n", x, result); <P>   return 0;
}
</P>
 楼主| 发表于 2004-5-9 05:32:56 | 显示全部楼层
<>函数名: longjump
功  能: 执行非局部转移
用  法: void longjump(jmp_buf env, int val);
程序例: <>#include &lt;stdio.h&gt;
#include &lt;setjmp.h&gt;
#include &lt;stdlib.h&gt; <>void subroutine(jmp_buf); <P>int main(void)
{ <P>   int value;
   jmp_buf jumper; <P>   value = setjmp(jumper);
   if (value != 0)
   {
      printf("Longjmp with value %d\n", value);
      exit(value);
   }
   printf("About to call subroutine ... \n");
   subroutine(jumper); <P>   return 0;
} <P>void subroutine(jmp_buf jumper)
{
   longjmp(jumper,1);
}
  
</P>
 楼主| 发表于 2004-5-9 05:33:12 | 显示全部楼层
<>函数名: lowvideo
功  能: 选择低亮度字符
用  法: void lowvideo(void);
程序例: <>#include &lt;conio.h&gt; <>int main(void)
{
   clrscr(); <P>   highvideo();
   cprintf("High Intesity Text\r\n");
   lowvideo();
   gotoxy(1,2);
   cprintf("Low Intensity Text\r\n"); <P>   return 0;
}
  
</P>
 楼主| 发表于 2004-5-9 05:33:30 | 显示全部楼层
<>函数名: lrotl, _lrotl
功  能: 将无符号长整型数向左循环移位
用  法: unsigned long lrotl(unsigned long lvalue, int count);
unsigned long _lrotl(unsigned long lvalue, int count);
程序例: <>/* lrotl example */
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt; <>int main(void)
{
   unsigned long result;
   unsigned long value = 100; <P>   result = _lrotl(value,1);
   printf("The value %lu rotated left one bit is: %lu\n", value, result); <P>   return 0;
}
  
</P>
 楼主| 发表于 2004-5-9 05:33:53 | 显示全部楼层
<>函数名: lsearch
功  能: 线性搜索
用  法: void *lsearch(const void *key, void *base, size_t *nelem,
       size_t width, int (*fcmp)(const void *, const void *));
程序例: <>#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt; <>int compare(int *x, int *y)
{
   return( *x - *y );
} <P>int main(void)
{
   int array[5] = {35, 87, 46, 99, 12};
   size_t nelem = 5;
   int key;
   int *result; <P>   key = 99;
   result = lfind(&amp;key, array, &amp;nelem,
               sizeof(int), (int(*)(const void *,const void *))compare);
   if (result)
      printf("Number %d found\n",key);
   else
      printf("Number %d not found\n",key); <P>   return 0;
}
</P>
 楼主| 发表于 2004-5-9 05:34:09 | 显示全部楼层
<>函数名: lseek
功  能: 移动文件读/写指针
用  法: long lseek(int handle, long offset, int fromwhere);
程序例: <>#include &lt;sys\stat.h&gt;
#include &lt;string.h&gt;
#include &lt;stdio.h&gt;
#include &lt;fcntl.h&gt;
#include &lt;io.h&gt; <>int main(void)
{
   int handle;
   char msg[] = "This is a test";
   char ch; <P>   /* create a file */
   handle = open("TEST.$$$", O_CREAT | O_RDWR, S_IREAD | S_IWRITE); <P>   /* write some data to the file */
   write(handle, msg, strlen(msg)); <P>   /* seek to the begining of the file */
   lseek(handle, 0L, SEEK_SET); <P>   /* reads chars from the file until we hit EOF */
   do
   {
      read(handle, &amp;ch, 1);
      printf("%c", ch);
   }  while (!eof(handle)); <P>   close(handle);
   return 0;
}
  </P>
 楼主| 发表于 2004-5-9 05:36:31 | 显示全部楼层
main()主函数 <>    每一C 程序都必须有一main()函数, 可以根据自己的爱好把它放在程序的某
个地方。有些程序员把它放在最前面, 而另一些程序员把它放在最后面, 无论放
在哪个地方, 以下几点说明都是适合的。
    1. main() 参数
    在Turbo C2.0启动过程中, 传递main()函数三个参数: argc, argv和env。
     * argc:  整数, 为传给main()的命令行参数个数。
     * argv:  字符串数组。
              在DOS 3.X 版本中, argv[0] 为程序运行的全路径名; 对DOS 3.0
              以下的版本, argv[0]为空串("") 。
              argv[1] 为在DOS命令行中执行程序名后的第一个字符串;
              argv[2] 为执行程序名后的第二个字符串;
              ...
              argv[argc]为NULL。
     *env:  安符串数组。env[] 的每一个元素都包含ENVVAR=value形式的字符
串。其中ENVVAR为环境变量如PATH或87。value 为ENVVAR的对应值如C:\DOS, C:
\TURBOC(对于PATH) 或YES(对于87)。
    Turbo C2.0启动时总是把这三个参数传递给main()函数, 可以在用户程序中
说明(或不说明)它们, 如果说明了部分(或全部)参数, 它们就成为main()子程序
的局部变量。
    请注意: 一旦想说明这些参数, 则必须按argc, argv, env 的顺序, 如以下
的例子:
     main()
     main(int argc)
     main(int argc, char *argv[])
     main(int argc, char *argv[], char *env[])
    其中第二种情况是合法的, 但不常见, 因为在程序中很少有只用argc, 而不
用argv[]的情况。
    以下提供一样例程序EXAMPLE.EXE,  演示如何在main()函数中使用三个参数:
     /*program name EXAMPLE.EXE*/
     #include &lt;stdio.h&gt;
     #include &lt;stdlib.h&gt;
     main(int argc, char *argv[], char *env[])
     {
          int i;
          printf("These are the %d  command- line  arguments passed  to
                  main:\n\n", argc);
          for(i=0; i&lt;=argc; i++)
            printf("argv[%d]:%s\n", i, argv);
          printf("\nThe environment string(s)on this system are:\n\n");
          for(i=0; env!=NULL; i++)
               printf(" env[%d]:%s\n", i, env);
     }
    如果在DOS 提示符下, 按以下方式运行EXAMPLE.EXE:
    C:\example first_argument "argument with blanks"  3  4  "last  but
one" stop!
    注意: 可以用双引号括起内含空格的参数, 如本例中的:   "  argument
with blanks"和"Last but one")。
    结果是这样的:
     The value of argc is 7
     These are the 7 command-linearguments passed to main:
     argv[0]:C:\TURBO\EXAMPLE.EXE
     argv[1]:first_argument
     argv[2]:argument with blanks
     argv[3]:3
     argv[4]:4
     argv[5]:last but one
     argv[6]:stop!
     argv[7]NULL)
     The environment string(s) on this system are:
     env[0]: COMSPEC=C:\COMMAND.COM
     env[1]: PROMPT=$P$G            /*视具体设置而定*/
     env[2]: PATH=C:\DOS;C:\TC      /*视具体设置而定*/
  
     应该提醒的是: 传送main() 函数的命令行参数的最大长度为128 个字符 (包
括参数间的空格),  这是由DOS 限制的。
  </P>
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-27 02:44 , Processed in 0.051397 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表