# File lib/fakefs/file.rb, line 566
      def self.write(filename, contents, offset = nil, open_args = {})
        offset, open_args = nil, offset if offset.is_a?(Hash)
        mode = offset ? 'a' : 'w'
        if open_args.size > 0
          if open_args[:open_args]
            args = [filename, *open_args[:open_args]]
          else
            mode = open_args[:mode] || mode
            args = [filename, mode, open_args]
          end
        else
          args = [filename, mode]
        end
        if offset
          open(*args) do |f|
            f.seek(offset)
            f.write(contents)
          end
        else
          open(*args) do |f|
            f << contents
          end
        end

        contents.length
      end