void flx_libinit_t::create ( flx_dynlink_t *lib_a, flx::gc::generic::gc_profile_t *gcp_a, main_t main_sym, int argc, char **argv, FILE *stdin_, FILE *stdout_, FILE *stderr_ ) { lib = lib_a; gcp = gcp_a; //fprintf(stderr, "Creating thread frame\n"); thread_frame = lib->thread_frame_creator( gcp); //fprintf(stderr, "thread frame CREATED\n"); //fprintf(stderr,"Incrementing refcnt\n"); ++lib->refcnt; gcp->collector->add_root(thread_frame); //fprintf(stderr, "CREATING start_proc\n"); start_proc = lib->start_sym(thread_frame, argc, argv, stdin_,stdout_,stderr_); //fprintf(stderr, "start_proc CREATED\n"); //fprintf(stderr, "CREATING main_proc\n"); main_proc = main_sym?main_sym(thread_frame):0; //fprintf(stderr, "main_proc CREATED\n"); usr_create(); }
struct data_bag screen(int sock_fd) { int choice; struct data_bag bag; loop:printf("**********************\n\n"); printf(" 1.新用户注册\n\n"); printf(" 2.老用户登录\n\n"); printf("**********************\n"); printf("请选择:1或者2\n"); scanf("%d",&choice); switch(choice) { case 1: usr_create(sock_fd); case 2: bag=usr_login(sock_fd) ;return bag; default: printf("输入选项无效!\n");goto loop; } }