def getattr(self, tid, fh=None):

        """
        File attributes.

        Parameters
        ----------
        tid : str
            Path to file. Original `path` argument is converted to tuple identifier by ``_pathdec`` decorator.
        fh : int
            File descriptor. Unnecessary, therefore ignored.

        Returns
        -------
        st : dict
            Dictionary that contains file attributes. See: ``man 2 stat``.
        """

        if not self.__exists(tid):
            raise FuseOSError(errno.ENOENT)

        pt = self.PathType.get(tid)

        st = deepcopy(self.st)
        st['st_atime'] = int(time())
        st['st_mtime'] = st['st_atime']
        st['st_ctime'] = st['st_atime']

        if pt is self.PathType.file:
            st['st_mode'] = stat.S_IFREG | 0o444
            st['st_nlink'] = 1

            st['st_size'] = self.searches[ tid[0] ][ tid[1] ].filesize

            st['st_ctime'] = self.searches[ tid[0] ][ tid[1] ].ctime
            st['st_mtime'] = st['st_ctime']
            st['st_atime'] = self.searches[ tid[0] ][ tid[1] ].atime

        elif pt is self.PathType.ctrl:

            st['st_mode'] = stat.S_IFREG | 0o774
            st['st_nlink'] = 1
            st['st_size'] = len(self.__sh_script)

        elif pt is self.PathType.main:
            st['st_mode'] = stat.S_IFDIR | 0o774

        st['st_blocks'] = math.ceil(st['st_size'] / st['st_blksize'])

        return st
File attributes.

        Parameters
        ----------
        tid : str
            Path to file. Original `path` argument is converted to tuple identifier by ``_pathdec`` decorator.
        fh : int
            File descriptor. Unnecessary, therefore ignored.

        Returns
        -------
        st : dict
            Dictionary that contains file attributes. See: ``man 2 stat``.