Set filesize for a regular file; set also last modification time to the current time
#include <sys/types.h>
#include "dpns_api.h"
int dpns_setfsize (const char *path, struct dpns_fileid *file_uniqueid, u_signed64 filesize)
int dpns_setfsizec (const char *path, struct dpns_fileid *file_uniqueid, u_signed64 filesize, const char *csumtype, char *csumvalue)
dpns_setfsize sets the filesize for a regular file; set also the last modification time to the current time. This function should only be called by the stager after the last write operation has been performed on the file. The file can be identified by path name or by file_uniqueid. If both are specified, file_uniqueid is used.
path
specifies the logical pathname relative to the current DPNS directory or the full DPNS pathname.
csumtype
specifies the type of checksum. Valid types are:
CS
standard 32 bits checksum
AD
Adler 32 bits checksum
MD
MD5 128 bits checksum
This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, serrno is set appropriately.
ENOENT
A component of path prefix does not exist or path is a null pathname.
EACCES
Search permission is denied on a component of the path prefix or the caller effective user ID does not match the owner ID of the file or write permission on the file itself is denied.
EFAULT
path and file_uniqueid are NULL pointers.
ENOTDIR
A component of path prefix is not a directory.
EISDIR
The file is not a regular file.
EINVAL
The length of the csumtype exceeds 2 or csumtype is an unknown type or the length of the csumvalue exceeds 32.
ENAMETOOLONG
The length of path exceeds CA_MAXPATHLEN or the length of a path component exceeds CA_MAXNAMELEN.
SENOSHOST
Host unknown.
SENOSSERV
Service unknown.
SECOMERR
Communication error.
ENSNACT
Name server is not running or is being shutdown.
LCG Grid Deployment Team