<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def dafrfr(handle, lenout=_default_len_out):
 """ Read the contents of the file record of a DAF. http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/dafrfr_c.html :param handle: Handle of an open DAF file. :type handle: int :param lenout: Available room in the output string :type lenout: int :return: Number of double precision components in summaries, Number of integer components in summaries, Internal file name, Forward list pointer, Backward list pointer, Free address pointer. :rtype: tuple """

    handle = ctypes.c_int(handle)
    lenout = ctypes.c_int(lenout)
    nd = ctypes.c_int()
    ni = ctypes.c_int()
    ifname = stypes.stringToCharP(lenout)
    fward = ctypes.c_int()
    bward = ctypes.c_int()
    free = ctypes.c_int()
    libspice.dafrfr_c(handle, lenout, ctypes.byref(nd), ctypes.byref(ni),
                      ifname, ctypes.byref(fward), ctypes.byref(bward),
                      ctypes.byref(free))
    return nd.value, ni.value, stypes.toPythonString(
            ifname), fward.value, bward.value, free.value