/* * Copyright (c) 1998 Ruslan R. Laishev (@RRL) */ #include #include #include #include #include #include #include #include #define INIT_SDESC(dsc, len, ptr) {(dsc).dsc$b_dtype = DSC$K_DTYPE_T;\ (dsc).dsc$b_class = DSC$K_CLASS_S; (dsc).dsc$w_length = (len);\ (dsc).dsc$a_pointer = (ptr);} /* *----------------------------------------------------------------------------- */ int find_file ( char *mask, short masklen, long *context, char *buf, short *buflen ) { struct dsc$descriptor_s fname_dsc,mask_dsc; INIT_SDESC(mask_dsc,masklen,mask); INIT_SDESC(fname_dsc,*buflen,buf); /* ** */ return lib$find_file (&mask_dsc,&fname_dsc,context); } void main (void) { long status,context = 0; char mask [] = "*.*"; char buf [ 128 ]; short buflen; struct dsc$descriptor out_dsc; for ( buflen = sizeof(buf); (1 & (status = find_file (mask,sizeof(mask), &context, buf,&buflen))); buflen = sizeof(buf)) { INIT_SDESC(out_dsc,buflen,buf); lib$put_output(&out_dsc); } sys$exit(status); }