18 lines
386 B
Python
18 lines
386 B
Python
|
import os
|
||
|
import ctypes
|
||
|
|
||
|
clib = ctypes.CDLL(None, use_errno=True)
|
||
|
|
||
|
def CLIBCheckError(ret, func, args):
|
||
|
if ret < 0:
|
||
|
code = ctypes.get_errno()
|
||
|
raise OSError(code, os.strerror(code))
|
||
|
return ret
|
||
|
|
||
|
def CLIBLookup(name, resType, argTypes):
|
||
|
func = clib[name]
|
||
|
func.restye = resType
|
||
|
func.argtypes = argTypes
|
||
|
func.errcheck = CLIBCheckError
|
||
|
return func
|