docs: def setfillvalue(self, fill_val):
          """Set the dataset fill value.
  
          Args::
  
            fill_val   dataset fill value (attribute '_FillValue')
  
          Returns::
  
            None
  
          The fill value is part of the so-called "standard" SDS
          attributes. Calling 'setfillvalue' is equivalent to setting
          the following attribute::
  
            _FillValue
  
          C library equivalent: SDsetfillvalue
                                                             """
  
          # Obtain SDS data type.
          try:
              sds_name, rank, dim_sizes, data_type, n_attrs = self.info()
          except HDF4Error:
              raise HDF4Error('setfillvalue : cannot execute')
          n_values = 1   # Fill value stands for 1 value.
  
          if data_type == SDC.CHAR8:
              buf = _C.array_byte(n_values)
  
          elif data_type in [SDC.UCHAR8, SDC.UINT8]:
              buf = _C.array_byte(n_values)
  
          elif data_type == SDC.INT8:
              buf = _C.array_int8(n_values)
  
          elif data_type == SDC.INT16:
              buf = _C.array_int16(n_values)
  
          elif data_type == SDC.UINT16:
              buf = _C.array_uint16(n_values)
  
          elif data_type == SDC.INT32:
              buf = _C.array_int32(n_values)
  
          elif data_type == SDC.UINT32:
              buf = _C.array_uint32(n_values)
  
          elif data_type == SDC.FLOAT32:
              buf = _C.array_float32(n_values)
  
          elif data_type == SDC.FLOAT64:
              buf = _C.array_float64(n_values)
  
          else:
              raise HDF4Error("setfillvalue: SDS has an illegal or " \
                               "unsupported type %d" % data_type)
  
          buf[0] = fill_val
          status = _C.SDsetfillvalue(self._id, buf)
          _checkErr('setfillvalue', status, 'cannot execute')