今天遇见程序出现sigbus的问题。
仔细查看了程序的源码,应该没什么逻辑问题。
程序每次运行到memcpy(&sum_cnt,addr,data_len)的时候就sigbus了~
真是奇怪啊,查看了addr不为空。
addr使用的是文件映射之后得到的内存地址:如下:
map_addr 就是映射之后所得。
bool scan_mapfile(char* file_path,
char*& map_addr,
int& fd,
size_t map_len,
int map_offset)
{
bool ret = true;
fd = open(file_path,O_RDWR);
if( -1 == fd)
{
return false;
}
map_addr = (char*)mmap(0x00, map_len, PROT