open (Net::SFTP::Protocol::V_01::Impl)

    # File lib/net/sftp/protocol/01/impl.rb, line 143
        def open( id, path, flags, mode=0660 )
          sftp_flags = case
            when ( flags & IO::WRONLY ) != 0 then F_WRITE
            when ( flags & IO::RDWR   ) != 0 then F_READ | F_WRITE
            when ( flags & IO::APPEND ) != 0 then F_APPEND
            else F_READ
          end

          sftp_flags |= F_CREAT if ( flags & IO::CREAT ) != 0
          sftp_flags |= F_TRUNC if ( flags & IO::TRUNC ) != 0
          sftp_flags |= F_EXCL  if ( flags & IO::EXCL  ) != 0

          attributes = @attr_factory.empty
          attributes.permissions = mode

          open_raw id, path, sftp_flags, attributes
        end