Пример #1
0
rodsLong_t
_l3Lseek (rsComm_t *rsComm, int rescTypeInx, int l3descInx,
rodsLong_t offset, int whence)
{
    fileLseekInp_t fileLseekInp;
    fileLseekOut_t *fileLseekOut = NULL;
    int status;

    switch (RescTypeDef[rescTypeInx].rescCat) {
      case FILE_CAT:
        memset (&fileLseekInp, 0, sizeof (fileLseekInp));
        fileLseekInp.fileInx = l3descInx;
        fileLseekInp.offset = offset;
        fileLseekInp.whence = whence;
        status = rsFileLseek (rsComm, &fileLseekInp, &fileLseekOut);
        break;

      default:
        rodsLog (LOG_NOTICE,
          "_l3Lseek: rescCat type %d is not recognized",
          RescTypeDef[rescTypeInx].rescCat);
        status = SYS_INVALID_RESC_TYPE;
        break;
    }
    if (status < 0) {
        return (status);
    } else {
	rodsLong_t offset = fileLseekOut->offset;
	free (fileLseekOut);
        return (offset);
    }
}
Пример #2
0
rodsLong_t
_l3Lseek( rsComm_t *rsComm, int rescTypeInx, int l3descInx,
          rodsLong_t offset, int whence ) {
    fileLseekInp_t fileLseekInp;
    fileLseekOut_t *fileLseekOut = NULL;
    int status;

    memset( &fileLseekInp, 0, sizeof( fileLseekInp ) );
    fileLseekInp.fileInx = l3descInx;
    fileLseekInp.offset = offset;
    fileLseekInp.whence = whence;
    status = rsFileLseek( rsComm, &fileLseekInp, &fileLseekOut );
    if ( status < 0 ) {
        return ( status );
    }
    else {
        rodsLong_t off = fileLseekOut->offset;
        free( fileLseekOut );
        return ( off );
    }
}