00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include <stdio.h>
00017 #include <stdlib.h>
00018 #include <unistd.h>
00019
00020 #define TIMEFILE "proj/mag/ambig/apps/data/masktime.txt"
00021
00022 int obstime2maskid(TIME tobs)
00023 {
00024 char ttemp[64];
00025 int MaskIndex = 0;
00026 FILE *fptr;
00027 TIME tid;
00028
00029
00030
00031 char lpath[256], spath[256], *needle;
00032
00033
00034 if (readlink("/proc/self/exe", spath, sizeof(spath)) == -1)
00035 {
00036 fprintf(stderr, "Cannot locate this binary.\n");
00037 return -1;
00038 }
00039 else
00040 {
00041 if ((needle = strstr(spath, DRMS_ARCH)) != NULL)
00042 {
00043 needle += strlen(DRMS_ARCH);
00044 *needle = '\0';
00045
00046
00047
00048 snprintf(lpath,
00049 sizeof(lpath),
00050 "%s/../%s",
00051 spath,
00052 TIMEFILE);
00053 }
00054 else
00055 {
00056 fprintf(stderr, "Cannot find architecture %s subpath.\n", DRMS_ARCH);
00057 return -1;
00058 }
00059 }
00060 printf("lpath: %s\n", lpath);
00061
00062
00063
00064 fptr = fopen(lpath, "r");
00065 if (!fptr) {
00066 printf("Time file for mask cannot be found, return -1.\n");
00067 return -1;
00068 }
00069
00070 while (fgets(ttemp, 64, fptr) != NULL) {
00071 tid = sscan_time(ttemp);
00072
00073 if (tobs < tid) {
00074 fclose(fptr);
00075 return MaskIndex;
00076 }
00077 MaskIndex++;
00078 }
00079
00080 fclose(fptr);
00081
00082 return MaskIndex;
00083
00084 }
00085