(同Internationalorganizations)國際組織
__random_r?(buf,?結果)
struct?random_data?* buf
int32_t?*結果;
{
int32_t?*州;
如果?(buf?==?NULL?||?結果?==?空)
goto?失敗;
狀態?=?buf-& gt;狀態;
如果?(buf-& gt;rand_type?==?TYPE_0)
{
int32_t?瓦爾。=?狀態[0];
瓦爾。=?((狀態[0]?*?1103515245)?+?12345)?& amp?0x7fffffff
狀態[0]?=?val
*結果?=?val
}
其他
{
int32_t?*fptr?=?buf-& gt;fptr
int32_t?*rptr?=?buf-& gt;rptr
int32_t?*end_ptr?=?buf-& gt;end _ ptr
int32_t?val
瓦爾。=?*fptr?+=?* rptr
/*?咯咯笑?最少?隨機?有點。*/
*結果?=?(瓦爾?& gt& gt?1)?& amp?0x7fffffff
++ fptr;
如果?(fptr?& gt=?end_ptr)
{
fptr?=?狀態;
++ rptr;
}
其他
{
++ rptr;
如果?(rptr?& gt=?end_ptr)
rptr?=?狀態;
}
buf-& gt;fptr?=?fptr
buf-& gt;rptr?=?rptr
}
回歸?0;
失敗:
__set_errno?(ein val);
回歸?-1;
}參考:?/lattera/glibc/blob/master/stdlib/random _ r . c