Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1250371
  • 博文数量: 247
  • 博客积分: 5587
  • 博客等级: 大校
  • 技术积分: 2060
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-24 13:27
文章分类
文章存档

2012年(101)

2011年(44)

2010年(102)

分类:

2010-11-04 15:23:11

chdir

简介:chdir 是C语言中的一个系统调用函数(同cd)   
函数名称:_chdir(在TC2.0下可以写作chdir)   
功 能: 改变当前工作目录   
头文件:direct.h(在TC2.0下为dir.h)   
用 法: int _chdir(const char *path);   
返回值:成功返回0 ,失败返回-1

memset

原型:void *memset(void *s, int ch, unsigned n);
需要的头文件:  or
简介:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向S的指针。

sscanf

简介: 从一个字符串中读进与指定格式相符的数据.
原型: Int sscanf( const char *, const char *, ...);   
      int scanf( const char *, ...);
需要的头文件: #include

说明:

  sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。    第一个参数可以是一个或多个 {%[*] [width] [{h | l | I64 | L}]type | ' ' | '\t' | '\n' | 非%符号}   注:   1、 * 亦可用于格式中, (即 %*d 和 %*s) 加了星号 (*) 表示跳过此数据不读入. (也就是不把此数据读入参数中)   2、{a|b|c}表示a,b,c中选一,[d],表示可以有d也可以没有d。   3、width表示读取宽度。   4、{h | l | I64 | L}:参数的size,通常h表示单字节size,I表示2字节 size,L表示4字节size(double例外),l64表示8字节size。   5、type :这就很多了,就是%s,%d之类。   6、特别的:%*[width] [{h | l | I64 | L}]type 表示满足该条件的被过滤掉,不会向目标参数中写入

signal

表头文件 #include   
功 能:
设置某一信号的对应动作   
定义函数
:void (*signal(int signum,void(* handler)(int)))(int);   
          或者:typedef void(*sig_t) ( int );   
                sig_t signal(int signum,sig_t handler);   
函数说明 :signal()会依参数signum 指定的信号编号来设置该信号的处理函数。当指定的信号到达时就会跳转到参数handler指定的函数执行。如果参数handler不是函数指针,则必须是下列两个常数之一:             SIG_IGN 忽略参数signum指定的信号。   
          SIG_DFL 将参数signum 指定的信号重设为核心预设的信号处理方式。   
          详细信号,查看unix信号编号   
返回值 返回先前的信号处理函数指针,如果有错误则返回SIG_ERR(-1)。   
附加说明 在信号发生跳转到自定的handler处理函数执行后,系统会自动将此处理函数换回原来系统预设的处理方式,如果要改变此操作请改用sigaction()。下面的情况可以产生Signal:   
1. 按下CTRL+C产生SIGINT   2. 硬件中断,如除0,非法内存访问(SIGSEV)等等   3. Kill函数可以对进程发送Signal   4. Kill命令。实际上是对Kill函数的一个包装   5. 软件中断。如当Alarm Clock超时(SIGURG),当Reader中止之后又向管道写数据(SIGPIPE),等等

strrchr

定义和用法

  strrchr()函数的作用是:查找一个字符串在另一个字符串中末次出现的位置,并返回从字符串中的这个位置起, 一直到字符串结束的所有字符。如果未能找到指定字符,那么函数将返回NULL。

语法

  char *strrchr(char *str, char c);

time()

头文件:time.h   
函数原型:time_t time(time_t * timer)   
功 能: 获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,其值表示从CUT(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。然后调用将time_t所表示的CUT时间转换为本地时间(我们是+8区,比CUT多8个小时)并转成struct tm类型,该类型的各数据成员分别表示年月日时分秒。   
补充说明: time函数的原型也可以理解为 long time(long *tloc),即返回一个long型整数。因为在time.h这个头文件中time_t实际上就是:   
#ifndef _TIME_T_DEFINED   
typedef long time_t; /* time value */   
#define _TIME_T_DEFINED /* avoid multiple defines of time_t */   
#endif   即long。获得日历时间

  我们可以通过time()函数来获得日历时间(Calendar Time),其原型为:time_t time(time_t * timer);

  如果你已经声明了参数timer,你可以从参数timer返回现在的日历时间,同时也可以通过返回值返回现在的日历时间,即从一个时间点(例 如:1970 年1月1日0时0分0秒)到现在此时的秒数。如果参数为空(NUL),函数将只通过返回值返回现在的日历时间,比如下面这个例子用来显示当前的日历时间:

  #include "time.h"

  #include "stdio.h"

  int main(void)

  {

  struct tm *ptr;

  time_t lt;

  lt =time(NUL);

  printf("The Calendar Time now is %d\n",lt);

  return 0;

  }

  运行的结果与当时的时间有关,我当时运行的结果是:

  The Calendar Time now is 1122707619

  其中1122707619就是我运行程序时的日历时间。即从1970年1月1日0时0分0秒到此时的秒数。


fread

功 能: 从一个流中读数据   
函数原型: int fread(void *ptr, int size, int nitems, FILE *stream);   
参 数:用于接收数据的地址(指针)(ptr)   
      单个元素的大小(size) :单位是字节而不是位,例如读取一个整数值就是4   
      元素个数(nitems)   
      提供数据的文件指针(stream)   
返回值:成功读取的元素个数

strerror

#include   char*strerror(int errnum);   
#include   void perror(const cahr *msg);   
strerror是把一个错误numb作为参数,然后返回错误numb所对应的错误语段,一般用errno。   
perror是在标准输出上输出msg字符串,然后再后面加上:错误语段(这个错误语段对应这时的errno)。

ctime


 函数: ctime   
功 能: 把日期和时间转换为字符串   
用 法: char *ctime(const time_t *time);   
程序例:   #include   #include   int main(void)   {   time_t t;   time(&t);   printf("Today's date and time: %s\n", ctime(&t));   return 0;   }   注:若在linux下使用本函数,需要include 头文件

fcntl

表头文件 #include   #include   
定义函数 int fcntl(int fd , int cmd);   int fcntl(int fd,int cmd,long arg);   
        int fcntl(int fd,int cmd,struct flock * lock);   
fcntl()用来操作的一些特性。参数fd代表欲设置的文件描述词,参数cmd代表欲操作的指令。  有以下几种情况:   
F_DUPFD用来查找大于或等于参数arg的最小且仍未使用的文件描述词,并且复制参数fd 的文件描述词。执行成功则返回新复制的文件描述词。请参考dup2()。
F_GETFD取得close-on-exec旗标。若此旗标的 FD_CLOEXEC位为0,代表在调用exec()相关函数时文件将不会关闭。   
F_SETFD 设置close-on-exec 旗标。该旗标以参数arg 的FD_CLOEXEC位决定。   
F_GETFL 取得文件描述词状态旗标,此旗标为open()的参数flags。   
F_SETFL 设置文件描述词状态旗标,参数arg为新旗标,但只允许O_APPEND、O_NONBLOCK和O_ASYNC位的改变,其他位的改变将不受影响。   
F_GETLK 取得文件锁定的状态。   
F_SETLK 设置文件锁定的状态。此时flcok 结构的l_type 值必须是F_RDLCK、F_WRLCK或F_UNLCK。如果无法建立锁定,则返回-1,错误代码为EACCES 或EAGAIN。   
F_SETLKW F_SETLK 作用相同,但是无法建立锁定时,此调用会一直等到锁定动作成功为止。若在等待锁定的过程中被信号中断时,会立即返回-1,错误代码为EINTR。参数lock指针为flock 结构指针,定义如下   struct flcok   {   short int l_type;   short int l_whence;   off_t l_start;   off_t l_len;   pid_t l_pid;   };   
l_type 有三种状态:   F_RDLCK 建立一个供读取用的锁定   F_WRLCK 建立一个供写入用的锁定   F_UNLCK 删除之前建立的锁定   
l_whence 也有三种方式:   SEEK_SET 以文件开头为锁定的起始位置。   SEEK_CUR 以目前文件读写位置为锁定的起始位置   SEEK_END 以文件结尾为锁定的起始位置。   
返回值 成功则返回0,若有错误则返回-1,错误原因存于errno.
ERRNO
许多标准的C库函数都通过全局变量errno向程序传递一个错误号,以表明发生哪种错误,但是,你的程序不应
该通过检查errno的值来判断是否发生了错误。通常,被调用的标准的C库函数都有一个返回值,该值将表示是
否发生了错误,并且表示是否已给errno赋予了相应的错误号。在没有发生错误或所调用的函数不使用errno
时,在errno中很可能仍然保留着一个错误号。有时,为了改善运行速度,使用errno的函数并不将errno清
零。
定义在 ERRNO.H ERRCPP.H ERRCPPD.H ERROR.H ERRORS.H
等头文件中。
例如:号码7 是 E2BIG,意思是 变量表太长,超过 128 bytes.头文件中有
#define E2BIG 7
例如:sqrt(-1) 得到 EDOM,负数开平方错误
#define EDOM 33
不同的编译器定义的号码可能不同。
一般用于系统调用时得到调用失败指示信息(status),然后用查错误函数(例如 GetErrorInfo )查出是什么错。
sprintf

sprintf 将字串格式化。

在头文件 #include<>中   
语法: int sprintf(string format, mixed [args]...);   
返回值:字符串长度(strlen)   
sprintf格式的规格如下所示。[]中的部分是可选的。%[指定参数$][标识符][宽度][.精度]指示符   
若想输出`%'本身时, 请这样`%%'处理。   
1. 处理字符方向。负号时表示从后向前处理。   2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。   3. 字符总宽度。为最小宽度。   4. 精确度。指在小数点后的浮点数位数。

转换字符

%% 印出百分比符号,不转换。   %c 整数转成对应的 ASCII 字元。   %d 整数转成十进位。   %f 倍精确度数字转成浮点数。   %o 整数转成八进位。   %s 整数转成字符串。   %x 整数转成小写十六进位。   %X 整数转成大写十六进位。
%u 无符号10进制整数

timeval

  DESCRIPTION   The functions gettimeofday and settimeofday can get and set the time as   well as a timezone. The tv argument is a timeval struct, as specified   in :   
struct timeval {   time_t tv_sec; /* seconds */   suseconds_t tv_usec; /* microseconds */   };   
其中对tv_usec的说明为时间的毫秒部分。 而在实际中,该函数以及Linux内核返回的timeval   类型的时间值,tv_usec代表的是微秒精度(10的-6次方秒)。

阅读(1199) | 评论(0) | 转发(0) |
0

上一篇:磁盘调度

下一篇:SIGPIPE

给主人留下些什么吧!~~