(self, pos, size, **kwargs)
return self.write_data(data, size, **kwargs)
Writes some data, loaded from the state, into the file.

        :param pos:     The address to read the data to write from in memory
        :param size:    The requested size of the write
        :return:        The real length of the write
Writes some data, loaded from the state, into the file.
Writes some data loaded from the state into the file .
def write(self, pos, size, **kwargs):
        """
        Writes some data, loaded from the state, into the file.

        :param pos:     The address to read the data to write from in memory
        :param size:    The requested size of the write
        :return:        The real length of the write
        """
        if type(pos) is str:
            raise TypeError("SimFileDescriptor.write takes an address and size. Did you mean write_data?")

        # Find a reasonable concrete size for the load since we don't want to concretize anything
        # This is copied from SimFile.read
        # TODO: refactor into a generic concretization strategy?
        if self.state.solver.symbolic(size):
            try:
                passed_max_size = self.state.solver.max(size, extra_constraints=(size < self.state.libc.max_packet_size,))
            except SimSolverError:
                passed_max_size = self.state.solver.min(size)
                l.warning("Symbolic write size is too large for threshold - concretizing to min (%d)", passed_max_size)
                self.state.add_constraints(size == passed_max_size)
        else:
            passed_max_size = self.state.solver.eval(size)
            if passed_max_size > 2**13:
                l.warning("Program performing extremely large write")

        data = self.state.memory.load(pos, passed_max_size)
        return self.write_data(data, size, **kwargs)
def write ( self , pos , size , * * kwargs ) : if type ( pos ) is str : raise TypeError ( "SimFileDescriptor.write takes an address and size. Did you mean write_data?" ) # Find a reasonable concrete size for the load since we don't want to concretize anything # This is copied from SimFile.read # TODO: refactor into a generic concretization strategy? if self . state . solver . symbolic ( size ) : try : passed_max_size = self . state . solver . max ( size , extra_constraints = ( size < self . state . libc . max_packet_size , ) ) except SimSolverError : passed_max_size = self . state . solver . min ( size ) l . warning ( "Symbolic write size is too large for threshold - concretizing to min (%d)" , passed_max_size ) self . state . add_constraints ( size == passed_max_size ) else : passed_max_size = self . state . solver . eval ( size ) if passed_max_size > 2 ** 13 : l . warning ( "Program performing extremely large write" ) data = self . state . memory . load ( pos , passed_max_size ) return self . write_data ( data , size , * * kwargs )