utils.c

来自「Adhoc无线网络路由协议源码」· C语言 代码 · 共 73 行

C
73
字号
#include "utils.h"#include "common.h"/* * *   Gets the current time in milliseconds since 1 jan 1970 * *   Return: *     u_int64_t - On error -1 is returned otherwise the time. */u_int64_tgetcurrtime(){  struct timeval tv;  if (gettimeofday(&tv, NULL) < 0)    /* Couldn't get time of day */    return -1;  return ((u_int64_t)tv.tv_sec) * 1000 + ((u_int64_t)tv.tv_usec) / 1000;}/* *  dot_ip() : converts ip address from int to dot.dot notation. *  is a wrapper around inet_ntoa so that you do not have to declare a, in_addr structure  *   *	 dot_ip can be called only once in one statement. *	 this is because dot_ip uses inet_ntoa which returns in a statically  *	 allocated buffer which is overwritten in each call. * hence you have to break up the printfs if there are multiple calls to dot_ip **/char *dot_ip(u_int32_t ipint){	struct in_addr ip;	ip.s_addr = ipint ;	return inet_ntoa(ip);}/* This is a routine to do a 'mknod' on the /dev/tun<n> if possible: * Return: 0 is ok, -1=already open, etc. *  * From sourcode of user-mode-linux by Jeff Dike --vikas */int mk_node(char *devname, int major, int minor){  struct stat statval;  int retval;  /* first do a stat on the node to see whether it exists and we   * had some other reason to fail:   */  retval = stat(devname, &statval);  if(retval == 0) return(0);  else if(errno != ENOENT){    /* it does exist. We are just going to return -1, 'cause there     * was some other problem in the open :-(.     */    return -1;  }  /* It doesn't exist. We can create it. */  return(mknod(devname, S_IFCHR|S_IREAD|S_IWRITE, makedev(major, minor)));}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?