<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def spksfs(body, et, idlen):
 # spksfs has a Parameter SIDLEN, # sounds like an optional but is that possible? """ Search through loaded SPK files to find the highest-priority segment applicable to the body and time specified. http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/spksfs_c.html :param body: Body ID. :type body: int :param et: Ephemeris time. :type et: float :param idlen: Length of output segment ID string. :type idlen: int :return: Handle of file containing the applicable segment, Descriptor of the applicable segment, Identifier of the applicable segment. :rtype: tuple """

    body = ctypes.c_int(body)
    et = ctypes.c_double(et)
    idlen = ctypes.c_int(idlen)
    handle = ctypes.c_int()
    descr = stypes.emptyDoubleVector(5)
    identstring = stypes.stringToCharP(idlen)
    found = ctypes.c_int()
    libspice.spksfs_c(body, et, idlen, ctypes.byref(handle), descr, identstring,
                      ctypes.byref(found))
    return handle.value, stypes.cVectorToPython(descr), \
           stypes.toPythonString(identstring), bool(found.value)