int init_sockets_library( void ) { #ifdef _WIN32 int res; res = WSAStartup( WSOCK_VERSION, &wsa_data); if (res < 0) { cout << "Error starting Winsock 1.1: " << res << endl; return -1; } #endif if (gethostname( hostname, sizeof hostname )) { cout << "gethostname failed: " << socket_errno << endl; } search_name( hostname ); #ifdef __unix__ uname( &my_utsname ); search_name( my_utsname.nodename ); #endif return 0; }
char * get_nick(puser users, int sock, char buffer[]) { char * nickname = malloc(MAXLEN); char * nick_request = "[Server] : Please specify a nickname (/nick your_nick) \n"; char * welcome = malloc(MAXLEN); memset(buffer, 0, MAXLEN); memset(nickname, 0, MAXLEN); while (1) { do_write(sock, nick_request); memset(buffer, 0, MAXLEN); do_read(sock, buffer); if (strncmp(buffer, "/nick ", 6) == 0) { sscanf(buffer, "/nick %s", nickname); } if (search_name(users, nickname) == -1) { break; } do_write(sock, "[Server] : Nickname already taken or incorrect \n"); } sprintf(welcome, "[Server] : Welcome to the chat %s\n", nickname); do_write(sock, welcome); return nickname; }
void search() /*查询函数*/ { int t,flag; do { printf("\n按学号查询请按1;按姓名查询请按2;进入主函数按3\n"); scanf("%d",&t); if(t>=1&&t<=3) { flag=1; break; } else { flag=0; printf("您输入有误,请重新选择!"); } } while(flag==0); while(flag==1); { switch(t) { case 1:printf("按学号查询\n");search_num();break; case 2:printf("按姓名查\n");search_name();break; case 3:main();break; default:break; } } }
void search() { int sh; clrscr(); design(); gotoxy(17,6); printf("\xDB\xDB\xB2 Two options available to search \xB2\xDB\xDB"); gotoxy(15,9); printf("[ 1 ] - Search by ID number ."); gotoxy(15,11); printf("[ 2 ] - Search by Description ."); gotoxy(17,15); printf("Enter your choice:: "); sh=toupper(getch()); switch(sh) { case '1': search_id(); break; case '2': search_name(); break; default: gotoxy(18,18); printf("\a\xDB\xDB wrong entry try again"); getch(); } getche(); }
int main() { setlocale(LC_ALL, "Ukr"); char c; if ((f_worker=fopen(file_name,"rb+"))==NULL) { if ((f_worker=fopen(file_name,"wb+"))==NULL) { cout<<"Неможливо створити файл запису бази даних працiвникiв !"<<endl; return -1; } cout<<" Створено новий файл бази даних працiвникiв !"<<endl; } do { cout<<"Виберiть режим роботи"<<endl; cout<<"1 - Ввiд працiвника"<<endl; cout<<"2 - Пошук за iменем"<<endl; cout<<"3 - Пошук за телефоном"<<endl; cout<<"4 - Показати всю базу"<<endl; cout<<"5 - Очистка бази баних"<<endl; cout<<"0 - Вивiд"<<endl; c=getch(); switch(c) { case '0': cout<<"Роботу завершено"<<endl; fclose(f_worker); return 0; case '1': input_worker(); break; case '2': search_name(); break; case '3': search_number(); break; case '4': show_all(); break; case '5': clear_file(); break; } } while (1); }
/* target_rtype should be either RT_A6 or RT_AAAA */ void conv_trick_list (G_List *rrsl, int target_rtype, int add) { const char *fn = "conv_trick_list()"; RRset *rrsp, *rrsp_aaaa; u_char str[MAX_DNAME]; G_List *gl; syslog (LOG_DEBUG, "%s: start", fn); rrsl->list_data = NULL; for (gl = rrsl->next; gl->list_data; gl = gl->next) { RRset *dup; char *name; int len; rrsp = (RRset *) gl->list_data; if (rrsp->key.info->r_type != RT_A) continue; name = rrset_owner(rrsp); len = rrsp->key.info->owner_len; dup = search_name(rrsl, name, len, target_rtype); if (dup) { if (T.debug > 3) { dname_decompress (str, MAX_DNAME, name, 0,0,0); syslog (LOG_DEBUG, "%s: duplicate %s", fn, str); } rrset_free(dup); continue; } /* convert A record into faked target_rtype record */ if (T.debug > 3) { dname_decompress (str, MAX_DNAME, name, 0,0,0); syslog (LOG_DEBUG, "%s: converting: %s", fn, str); } rrsp_aaaa = conv_trick_rrset(rrsp, target_rtype, T.current_prefix); if (!rrsp_aaaa) { syslog (LOG_ERR, "%s: Can't convert A to AAAA", fn); continue; } if (T.debug) { dname_decompress (str, MAX_DNAME, name, 0,0,0); syslog (LOG_DEBUG, "%s: %s %s", fn, add ? "add" : "replace by", str); } if (add) { list_add (rrsl, rrsp_aaaa); } else { rrset_free (rrsp); gl->list_data = rrsp_aaaa; } } return; }
int main(int argc, char **argv) { int entryCount = 0; char command[7]; char commandArg[33]; //read entries from file into dynamically allocated memory read_file(); printf("Welcome to Nikola T's telephone book!\n"); while (1) { //Provide menu of commands printf("\nCurrent number of entries: %i\n", entryCount); printf("Commands: add, search, delete, exit\n: "); //accept command memset(command, 0, 7); scanf("%s", command); printf("Read:%s:\n", command); //call relevant function if (!strcmp(command, "add")) { //add case printf("add command!\n"); scanf("%s", commandArg); printf("Read:%s:\n", commandArg); } else if (!strcmp(command, "search")) { int number = 0; //search case printf("search command!\nName or number: "); scanf("%s", commandArg); printf("Read1:%s:\n", commandArg); //Figure if it's a name search or a number search if (isdigit(commandArg[0]) > 0) { printf("Read2:%s:\n", commandArg); number = atoi(commandArg); printf("Read3:%s:\n", commandArg); search_number(number); } else { search_name(commandArg); } } else if (!strcmp(command, "delete")) { //delete case printf("delete command!\n"); scanf("%s", commandArg); printf("Read:%s:\n", commandArg); } else if (!strcmp(command, "exit")) { return 0; } else { printf("something broke!\n"); } } }
void search_func(MENU_TYPE funcNum, pUSR_INFOR phead_infor) { if(funcNum == 0) search_all(phead_infor); if(funcNum == 1) search_name(phead_infor); if(funcNum == 2) search_id(phead_infor); if(funcNum == 3) return; }
static int search_cb(search_t *search, search_event_t *evt, void *udata) { batch_decoder_t *bd = (batch_decoder_t *) udata; dict_t *d = search_factory_d2p(bd->sf)->dict; double delta = get_time_delta(bd); double frate = cmd_ln_int32_r(search_config(search), "-frate"); FILE *hypfh = NULL; void *val; if (hash_table_lookup(bd->hypfiles, search_name(search), &val) == 0) hypfh = val; else hypfh = stdout; fprintf(hypfh, "time delta %f ", delta); switch (evt->event) { case SEARCH_PARTIAL_RESULT: { int32 score; seg_iter_t *seg = search_seg_iter(search, &score); fprintf(hypfh, "partial: "); for (; seg; seg = seg_iter_next(seg)) { int sf, ef; seg_iter_times(seg, &sf, &ef); fprintf(hypfh, "%s:%.3f ", dict_basestr(d, seg_iter_wid(seg)), (double) ef / frate); } fprintf(hypfh, "(%s)\n", search_uttid(search)); break; } case SEARCH_START_UTT: fprintf(hypfh, "start %s\n", search_uttid(search)); break; case SEARCH_END_UTT: fprintf(hypfh, "end %s\n", search_uttid(search)); break; case SEARCH_FINAL_RESULT: { int32 score; seg_iter_t *seg = search_seg_iter(search, &score); fprintf(hypfh, "full: "); for (; seg; seg = seg_iter_next(seg)) { int sf, ef; seg_iter_times(seg, &sf, &ef); fprintf(hypfh, "%s:%.3f ", dict_basestr(d, seg_iter_wid(seg)), (double) ef / frate); } fprintf(hypfh, "(%s)\n", search_uttid(search)); break; } } return 0; }
char * search_email (char *data) { char *tmp; char *name; char *domain; int ret,count; struct email_info one_email; tmp = data; for ( ; *tmp !='\0';tmp++ ) { if (*tmp == '@') break; } if (tmp == data) return NULL; name = search_name(tmp,data); if (name == NULL) return NULL; count = tmp - name ; if (count > 32) return NULL; strncpy(one_email.name,name,count); one_email.name[count] = 0; ret = check_name(one_email.name,1); if (!ret) return NULL; domain = search_domain(tmp); if (domain == NULL) return NULL; count = domain - tmp - 1; if (count > 64) return NULL; tmp ++; strncpy(one_email.domain ,tmp,count); one_email.domain[count] = 0; ret = check_domain(one_email.domain,1); if (!ret) return NULL; printf("name: %s@%s\n",one_email.name,one_email.domain); }
void fncDecl(void) /* 関数宣言 */ { SymTbl *f1; localAdrs = START_LocalAdrs; /* 局所領域割付けカウンタ初期化 */ f1 = search_name(tmpTb.name); if (f1!=NULL && f1->nmKind!=fncId && f1->nmKind!=protId) { err_ss("識別子が重複している", f1->name); f1 = NULL; } fncPt = enter(tmpTb, fncId); /* 記号表に登録 */ token = nextTkn(); localTBL_open(); /* 局所用記号表を用意 */ switch (token.kind) { /* 引数処理 */ case Void: token = nextTkn(); break; /* 引数 (void) */ case ')': break; /* 引数なし () */ default: /* 引数あり */ for (;;) { set_type(); set_name(); enter(tmpTb, paraId); /* 引数登録 */ ++(fncPt->args); /* 引数個数を+1 */ if (token.kind != ',') break; /* 宣言終了 */ token = nextTkn(); /* 次の引数 */ } } token = chk_nextTkn(token, ')'); /* ')'のはず */ if (token.kind == ';') fncPt->nmKind = protId; /* 関数プロトタイプ */ set_adrs(fncPt); /* 関数入口番地と引数アドレス設定 */ if (f1 != NULL) fncChk(f1, fncPt); /* 関数の正しさを確認 */ switch (token.kind) { case ';': token = nextTkn(); break; /* プロトタイプ */ case '{': if (IS_MAIN(fncPt)) set_main(); /* main関数処理 */ fncDecl_begin(); /* 関数入口処理 */ block(1); /* 関数本体処理 */ fncDecl_end(); /* 関数出口処理 */ break; default: err_s("関数の ; または { がない"); exit(1); } localTBL_close(fncPt); /* 局所用記号表を解消 */ del_fncTable(f1, fncPt); /* 重複登録なら解消 */ fncPt = NULL; /* 関数処理終了 */ }
static void search_abl(chain_list* abl, befig_list* befig) { if (!abl) { fprintf(stderr,"search_abl: NULL pointer\n"); exit(1); } if (!ABL_ATOM(abl)) { /*operator*/ for (abl=ABL_CDR(abl); abl; abl=ABL_CDR(abl)) { search_abl(ABL_CAR(abl),befig); } return; } if (isdelaydefined(ABL_ATOM_VALUE(abl))) return; search_name(ABL_ATOM_VALUE(abl),befig); }
void handle_whois(puser users, int socket, char * buffer) { char * name = malloc(MAXLEN); char timebuf[20]; int k; memset(name, '0', MAXLEN); sscanf(buffer, "/whois %s", name); k = search_name(users, name); if (k != -1) { time_t time = users[k].timez; strftime(timebuf, 20, "%Y/%m/%d@%H:%M:%S", localtime(&time)); sprintf(buffer, "[Server] : %s is connected since %s with IP address %s and port number %i\n", name, timebuf, iptoa(users[k].ip), users[k].port); } else { sprintf(buffer, "[Server] : %s appears not to be a logged on user\n", name); } do_write(socket, buffer); }
void send_user(puser users, char * buffer, int sender) { char * temp = malloc(MAXLEN); // Extracting the expected reciever's nickname from the buffer sscanf(buffer, "/msg %s", temp); // Search for the reciever's id by its name and search for the sender's id by its socket int r = search_name(users, temp); int s = search_fd(users, sender); if (r == -1) { sprintf(buffer, "[Server] : %s is not a logged on user \n", temp); do_write(sender, buffer); return; } // Extract the message from the buffer, we use a regex to have the spaces included in the message sscanf(buffer, "/msg %*s %250[^\n]", temp); // Format the message to be sent sprintf(buffer, "[%s] : %s\n", users[s].nick, temp); // Finally send the message to the user do_write(users[r].sock_nb, buffer); // free(temp); }
int main() { fp = fopen("log.txt", "w"); log_time(); fprintf(fp, "Start Programm\n"); int target_floor, target_room; int view_flag = 1; building *building_list = (building *) malloc(sizeof(building)); log_time(); fprintf(fp, "init building_list\n"); init(building_list); add_floor(building_list, FALSE); add_room(building_list, FALSE); add_room(building_list, FALSE); add_room(building_list, FALSE); while (1) { fflush(fp); if (view_flag) view_building(building_list, TRUE); else { view_room(building_list, target_floor, target_room); } switch (input_cmd()) { case 1: { // [1] 건물 확장 switch (input_extend_cmd()) { case 1: { // [1] 층 확장 add_floor(building_list, TRUE); break; } case 2: { // [2] 방 확장 add_room(building_list, TRUE); break; } } break; } case 2: { // [2] View 변환 if (view_flag) { printf("특정 방 내부 보여주기 로 View가 변환되었습니다.\n"); printf("층과 호수를 입력하세요\n"); if (tts_flag) { system("pico2wave -w test.wav \"Translated the view into the specific room viewing.\""); system("aplay -q test.wav"); system("pico2wave -w test.wav \"Input floor number and room number\""); system("aplay -q test.wav"); } scanf("%d %d", &target_floor, &target_room); view_flag = 0; } else { printf("전체 방 보여주기 로 View가 변환되었습니다.\n"); if (tts_flag) { system("pico2wave -w test.wav \"Translated the view into the total room viewing.\""); system("aplay -q test.wav"); } view_flag = 1; } break; } case 3: { // [3] 방 별 칸 변환 change_space(building_list); break; } case 4: { // [4] 칸 별 사람 이름 변환 change_name(building_list); break; } case 5: { search_name(building_list); break; } case 6: { // [6] TTS ON/OFF if (tts_flag) { printf("TTS를 사용하지않습니다.\n"); tts_flag = 0; } else { printf("TTS를 사용합니다.\n"); system("pico2wave -w test.wav \"From now, Use text to speach.\""); system("aplay -q test.wav"); tts_flag = 1; } break; } case 7: { // [5] 종료 printf("\n프로그램을 종료합니다.\n"); if (tts_flag) { system("pico2wave -w test.wav \"Exit Program.\""); system("aplay -q test.wav"); } return 0; break; } } } return 0; }