int main() { state = sync_init("file.txt", 4096*2, "log.txt"); if (state != 0) { printf("sync_init fail\n"); return -1; } state = sync_read(ans, 10, 4095); if (state != 0) { printf("sync_read fail\n"); return -1; } ans[10] = '\0'; printf("read answer: %s\n", ans); state = sync_write(ans, 10, 1); if (state != 0) { printf("sync_write fail\n"); return -1; } state = sync_read(ans, 10, 1); if (state != 0) { printf("sync_read fail\n"); return -1; } ans[10] = '\0'; printf("read answer: %s\n", ans); state = sync_exit(); if (state != 0) { printf("sync_exit fail\n"); return -1; } return 0; }
int main(int argc, char *argv[]) { int timestamp = time(NULL); if(argc >= 2) { if(argv[1][0] == 'r' && argc >= 3) { readfromfile = 1; timestamp = atoi(argv[2]); } if(argv[1][0] == 'w') writetofile = 1; if(argv[1][0] == 'W' || argv[1][1] == 'W') writetofile2 = 1; } initsignals(); sync_init(ndongles, 16384); corr_init(ndongles, 32); buffers = malloc(ndongles * sizeof(*buffers)); files = malloc(ndongles * sizeof(*files)); files2 = malloc(ndongles * sizeof(*files2)); for(di=0; di < ndongles; di++) { char t[32]; buffers[di] = malloc(blocksize * sizeof(**buffers)); if(readfromfile || writetofile) { sprintf(t, "d%02d_%d", di, timestamp); if((files[di] = fopen(t, readfromfile ? "rb" : "wb")) == NULL) { fprintf(stderr, "Could not open file\n"); goto fail; } } if(writetofile2) { sprintf(t, "c%02d_%d", di, timestamp); if((files2[di] = fopen(t, "wb")) == NULL) { fprintf(stderr, "Could not open file2\n"); goto fail; } } } if(readfromfile) { for(;;) { for(di = 0; di < ndongles; di++) { if(fread(buffers[di], blocksize, 1, files[di]) == 0) goto fail; } dodsp(blocksize, (void**)buffers); } } else { int donglesok = coherent_init(ndongles, 2400000, 434e6, 300); if(donglesok == ndongles) { while(do_exit == 0) { if(coherent_read(blocksize, buffers) == -1) break; dodsp(blocksize, (void**)buffers); if(writetofile) { for(di = 0; di < ndongles; di++) { fwrite(buffers[di], blocksize, 1, files[di]); } } } } coherent_exit(); } fail: sync_exit(); return 0; }