linux标准库unistd.h

更新时间:2023-05-12 14:22:17 阅读: 评论:0

linux标准库unistd.h
unistd.h是unix std的意思,是POSIX标准定义的unix类系统定义符号常量的头⽂件,
包含了许多UNIX系统服务的函数原型
unistd.h在unix中类似于window中的windows.h
#ifdef WIN32
#include <windows.h>
#el
#include <unistd.h>
#endif
许多在Linux下开发的C程序都需要头⽂件unistd.h,但VC中没有个头⽂件,
所以⽤VC编译总是报错。把下⾯的内容保存为unistd.h,可以解决这个问题。
/
** This file is part of the Mingw32 package.
* unistd.h maps (roughly) to io.h
*/
#ifndef _UNISTD_H
#define _UNISTD_H
#include <io.h>
#include <process.h>
#endif /* _UNISTD_H */
unistd.h含有的常量与函数:
ssize_t      read(int, void *, size_t); // 读取⽂件使⽤
int          unlink(const char *);
ssize_t      write(int, const void *, size_t); // 写⽂件
int          usleep(uconds_t); // 进程休眠,单位为微妙
unsigned    sleep(unsigned); // 进程休眠,单位为秒
int          access(const char *, int); // 获取⽂件的权限
unsigned    alarm(unsigned);
int          chdir(const char *);
int          chown(const char *, uid_t, gid_t);
int          clo(int); // 关闭⽂件
size_t      confstr(int, char *, size_t);
void        _exit(int);
pid_t        fork(void);
NULL          // Null pointer
SEEK_CUR    // Set file offt to current plus offt.
SEEK_END    // Set file offt to EOF plus offt.
SEEK_SET    // Set file offt to offt.
在进⾏堵塞式系统调⽤时,为避免进程陷⼊⽆限期的等待,能够为这些堵塞式系统调⽤设置定时器。Linux提供了alarm系统调⽤和SIGALRM信号实现这个功能。
要使⽤定时器,⾸先要安装SIGALRM信号。假设不安装SIGALRM信号,则进程收到SIGALRM信号后,缺省的动作就是终⽌当前进程。
SIGALRM信号成功安装后,在什么情况下进程会收到该信号呢?这就要依赖于Linux提供的定时器功能。在Linux系统下,每⼀个进程都有惟⼀的⼀个定时器,该定时器提供了以秒为单位的定时功能。在定时器设置的超时时间到达后,调⽤alarm的进程将收到SIGALRM信号。
void main()
{
//安装SIGALRM信号
if(signal(SIGALRM,CbSigAlrm)==SIG_ERR)
{
perror("signal");
return;
}
//关闭标准输出的⾏缓存模式
tbuf(stdout,NULL);
//启动定时器
alarm(1);
//进程进⼊⽆限循环,仅仅能⼿动终⽌
while(1)
{
//暂停,等待信号
pau();
}
}
alarm函数的使⽤:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
static int flag = 0;
void handle(int signum){
printf("hello world %d\n", flag++);
alarm(1);
}
int main() {
alarm(1);
signal(SIGALRM, handle);
while(1);
}

本文发布于:2023-05-12 14:22:17,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/600484.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信号   系统   进程   标准   程序   提供   单位   收到
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图