POSIX规范 man系统调用 gettimeofday系统调用耗时 编程获取登录用户

2020-03-12 21:34:00
admin
原创 1854
摘要:POSIX规范 man系统调用 gettimeofday系统调用耗时 编程获取登录用户

一、POSIX规范

POSIX,Portable Operating System Interface of UNIX,可移植的操作系统接口,定义操作系统为应用程序提供的接口标准。


二、man系统调用

安装系统调用帮助:yum install man-pages


三、gettimeofday系统调用耗时

代码下载:syscallperf.cpp

性能结论:百万次/200毫秒


#include <sys/time.h>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
int main (int argc, char **argv)
{
    if (argc < 2)
        return 0;
    int loop = atoi(argv[1]);
    printf("loop %d.\n", loop);
    
    clock_t clock1, clock2, diff;
    clock1 = clock();
    int cnt=0;
    struct timeval tv;
    while (cnt++ < loop)
    {
    gettimeofday(&tv, NULL);
    }
    clock2 = clock();
    diff = clock2 - clock1;
    printf("loop %d, diff %d.\n", loop, diff);
    printf("total time %.3f milliseconds.\n", ((float)diff/CLOCKS_PER_SEC)*1000);
    printf("tv_sec:%d\n", tv.tv_sec);
    printf("tv_usec:%d\n", tv.tv_usec);
    return 0;
}


四、编程获取登录用户

1、代码下载:getuser.cpp

2、通过isatty和ttyname函数获取当前终端名称,然后根据登录用户列表判断是哪个用户;

3、程序使用STDIN_FILENO获取当前终端,所以标准输入被重定向会导致无法获取真实终端名称;

4、方法二是通过isatty和getlogin函数获取登录用户,getlogin定时任务也能调用成功,所以需要使用isatty进行过滤;

发表评论
评论通过审核之后才会显示。