Introduction
Uniform File Access Library
UFAL is one programming tool to support muliple file access protocols, such as xrootd, rfio, shared file systems (Lustre, AFS, etc)
The format of one file can be:
(1) xrootd files, eg.
root://cdev02//tmp/f1
(2) rfio files, eg.
cdev02://tmp/f1
(3) local files, eg.
/tmp/f1
(4) Network file systems like local FS, eg, Lustre, AFS and so on.
The format doesn't decide the actual protocal which is used while data is transferred. UFAL will firstly try to use local protocol if the shared FS is found, instead of xrootd or rfio format. The shared FS is defined in an enviornment variable "UFAL_NETFS", for example: UFAL_NETFS="/besfs /afs". All the shared file systems should listed in this variable. Secondly, UFAL always try to use xrootd to access one file.
For example:
(1) root://cdev02//besfs/f1 will be accessed via local, it is consided as /besfs/f1
(2) cdev02:/tmp/f1 will be accessed via xrootd if possible
(3) cdev02:/afs/ihep.ac.cn/f1 will be access via AFS
Author:
Yaodong Cheng (Yaodong.Cheng@ihep.ac.cn)
IHEP (the Institute of High Energy of Physics, Chinese Academy of Sciences)
19B YuQuan Rd. Shijingshan District, Beijing
P.O 918-7 Beijing 100049
Programming with ufal
For example
gcc -o ufcat ufcat.c -I/opt/ufal/include -lufal -L/opt/ufal/lib -I/usr/include/shift -D_LARGEFILE64_SOURCE


