<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def openbin(self, path, mode='r', buffering=-1, **options):
 # noqa: D102 """Open a binary file-like object. Arguments: path (str):
 A path on the filesystem. mode (str):
 Mode to open the file (must be a valid, non-text mode). Since this method only opens binary files, the ``b`` in the mode is implied. buffering (int):
 the buffering policy (-1 to use default buffering, 0 to disable completely, 1 to enable line based buffering, or any larger positive integer for a custom buffer size). Keyword Arguments: pipelined (bool):
 Set the transfer in pipelined mode (should improve transfer speed). Defaults to ``True``. Raises: fs.errors.FileExpected: if the path if not a file. fs.errors.FileExists: if the file already exists and *exclusive mode* is specified (``x`` in the mode). fs.errors.ResourceNotFound: if the path does not exist. Returns: io.IOBase: a file handle. """

        self.check()
        _path = self.validatepath(path)
        _mode = Mode(mode)
        _mode.validate_bin()

        with self._lock:
            if _mode.exclusive:
                if self.exists(_path):
                    raise errors.FileExists(path)
                else:
                    _mode = Mode(''.join(set(mode.replace('x', 'w'))))
            elif _mode.reading and not _mode.create and not self.exists(_path):
                raise errors.ResourceNotFound(path)
            elif self.isdir(_path):
                raise errors.FileExpected(path)
            with convert_sshfs_errors('openbin', path):
                _sftp = self._client.open_sftp()
                handle = _sftp.open(
                    _path,
                    mode=_mode.to_platform_bin(),
                    bufsize=buffering
                )
                handle.set_pipelined(options.get("pipelined", True))
                return SSHFile(handle)