Linux????????????????????????
???????????? ???????[ 2012/11/29 10:59:34 ] ????????
???????????дLinux???п?????????????????????????????????????б?????????????????????????????е????????????????????Щ??????ɡ?
???????дC/C++??????????????????????е??????????????????????У?????????????????????????????????????????????????????????????????????????????????????????????????????и??????????????????檔??????ü??????????????????????????????????????????????????????????????????У???????????????????????????????????????????????????????????????????????????????????????????????????????дLinux???п?????????????????????????????????????б???????????????????????????????????е???????
????1????????C???е???????
?????????????е??????????У??????????????????????????C???е????????????C???е?????????????????????errno.h?У?????????????0???????????????????????0????????????????????????????????????????????C???У??????????????errno??????????????????????????????????????У????????????errno?????????????errno.h?е???????塣?????????е??????????????????????C?е????perror()??strerrno()??????????????????????
????2?????????????????
???????????£????C?е???????????????????е?????????????????????????????????е???????????????????£?
??????????漲???????????
????????з?????????????????????????????????????Щ??????????????????????????г????????????????????????????????????????????????????????????????????Щ??????????????л????????÷????????λ?????????С???????????????????????λ???????????????г?????????????????????????????????????0X10000000??0X20000000???????????????????????????????????????????0X80000000??0X90000000??0XA0000000????????????????????????????????????11????????????0X000B00000???????????????????????????????C???е?????????????????????0???????????????????5????????????????????????????????????0X100B0000??0XA00B0005??
?????????????????????????????
???????????????????????????????????????????????У????????????????????????е?λ?e?????????????????????
?????????????????ж???????????????????0????????????1???????????2????????????3?????????????????????????????????
char *ReturnMessage_11[] =
{
"???????"??
"?????????"??
"??????????"??
"?????????"??
(char *)0
};
};
????????????????????????0X100B0000??0X900B0001??0X900B0002??0X900B0003??
???????????????????????
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????msg_ptr???????????£?
void *handle;
char *messageShow;
// ??????????????
handle = dlopen(NULL?? RTLD_LAZY);
// ??????????
sprintf(messageShow??"ReturnMessage_%d"?? ComponentIdx);
// ?????????????????????????
msg_ptr[ComponentIdx] = dlsym(handle?? messageShow);
???????????????????????????????
?????????????????????????????????е???????????????????£??????????????????ж?????????????????????????е?StrError(int rts)????????????????????????????
?????÷???????????£?
int ErrnoIdx;
int CompomentIdx;
// ??÷??????????????
ErrnoIdx = rts & 0xFFFF;
// ??????????
CompomentIdx = (rts & 00FF0000) >> 16 ;
// ???????????????????????
return msg_ptr[CompomentIdx][ErrnoIdx] ;
?????????????????????????????????Linux???????????н?????????
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11