您的位置:首页 > 其它

关于在TEE环境下,无法使用htobe64函数的问题

2016-04-08 17:46 393 查看
在TEE环境下,o可能由于安全问题,无法使用htobe64函数,所以使用另一种方式来完成这个函数的转换功能:

#include <iostream>

#include <stdio.h>

#include <stdarg.h>

#include <dirent.h>

#include <errno.h>

#include <endian.h>

#include <inttypes.h>

#include <stdint.h>

using namespace std;

static uint32_t convert_x(uint32_t x)

{

    return x>>24 | x>>8&0xff00 | x<<8&0xff0000 | x<<24;

}

//这个函数完成和htobe64一样的功能

static uint64_t convert(uint64_t x)

{

    return convert_x(x)+0ULL<<32 | convert_x(x>>32);

}

int main()

{

    struct timespec ts;

        clock_gettime(CLOCK_MONOTONIC, &ts);

        uint64_t times = (uint64_t)((uint64_t)ts.tv_sec * 1000 + ts.tv_nsec / 1000000);

        uint64_t timestamp =

            htobe64(times);

        unsigned char out[8]={0};

        printf("times-->%"PRIu64"\n",convert(times));

        printf("timestamp-->%"PRIu64"\n",timestamp);

        printf("timestampqq-->%"PRIu64"\n",htobe64((uint64_t)ts.tv_sec * 1000 + ts.tv_nsec / 1000000));

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  htobe64