Symantec logo

Application programmatic interface

The named data streams API uses a combination of standard system calls and VxFS API calls to utilize its functionality.

The following is an example of pseudo code to query named data streams:

/* Create and open a file */

if ((fd = open("named_stream_file", O_RDWR | O_CREAT | O_TRUNC,

mode)) < 0) {

sprintf(error_buf, "%s, Error Opening File %s ", argv[0],

filename);

perror(error_buf);

exit(-1);

}

/* Write to the regular file as usual */

write(fd, buf, 1024);

/* Create several named data streams for file

named_stream_file */

for (i = 0; i < 20; i++) {

sprintf(attrname, "%s%d", "stream", i);

nfd = vxfs_nattr_open(fd, attrname, O_WRONLY | O_CREAT,

mode);

if (nfd < 0) {

sprintf(error_buf,

"%s, Error Opening Attribute file %s/./%s ",

argv[0], filename, attrname);

perror(error_buf);

exit(-1);

}

/* Write some data to the stream file */

memset(buf, 0x41 + i, 1024);

write(nfd, buf, 1024);

close(nfd);

}