当前位置: 技术问答>linux和unix
文件复制时,进行限速的代码 理解
来源: 互联网 发布时间:2016-10-21
本文导语: 下面是将文件 func_cmds.c 中内容 copy到 destfile中的代码。其中实现了复制文件时的限速,速度最大为200byte/s.是用中断和setitimer实现的,看了半天没有看懂究竟是如何实现限速的,故在此求高手解答。。。 # include...
下面是将文件 func_cmds.c 中内容 copy到 destfile中的代码。其中实现了复制文件时的限速,速度最大为200byte/s.是用中断和setitimer实现的,看了半天没有看懂究竟是如何实现限速的,故在此求高手解答。。。
# include
# include
# include
# include
# include
# include
# include
# include
# include
#ifndef bzero
#define bzero(s, n) memset(s, 0x00, n)
#endif
# define err_sys(x) do {fprintf(stderr,"%s %d ", __FILE__, __LINE__); perror(#x); exit(1);} while(0)
# define FALSE 0
# define TRUE 1
typedef unsigned short bool;
static bool s_one_sec_gone;
void sig_retr_alarm(int sig) // signal handler
{
printf("alarm............................................n"); // ??
if(SIGALRM == sig)
{
s_one_sec_gone = TRUE;
}
};
int sleep_ex(long sec, long usec) // 休眠函数
{
struct timeval tmout = {sec, usec};
if(select(0, NULL, NULL, NULL, &tmout)