这篇教程C++ snprintf函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中snprintf函数的典型用法代码示例。如果您正苦于以下问题:C++ snprintf函数的具体用法?C++ snprintf怎么用?C++ snprintf使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了snprintf函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: LALGenerateEllipticSpinOrbitCW//.........这里部分代码省略......... /* Allocate output structures. */ if ( ( output->a = (REAL4TimeVectorSeries *) LALMalloc( sizeof(REAL4TimeVectorSeries) ) ) == NULL ) { ABORT( stat, GENERATESPINORBITCWH_EMEM, GENERATESPINORBITCWH_MSGEMEM ); } memset( output->a, 0, sizeof(REAL4TimeVectorSeries) ); if ( ( output->f = (REAL4TimeSeries *) LALMalloc( sizeof(REAL4TimeSeries) ) ) == NULL ) { LALFree( output->a ); output->a = NULL; ABORT( stat, GENERATESPINORBITCWH_EMEM, GENERATESPINORBITCWH_MSGEMEM ); } memset( output->f, 0, sizeof(REAL4TimeSeries) ); if ( ( output->phi = (REAL8TimeSeries *) LALMalloc( sizeof(REAL8TimeSeries) ) ) == NULL ) { LALFree( output->a ); output->a = NULL; LALFree( output->f ); output->f = NULL; ABORT( stat, GENERATESPINORBITCWH_EMEM, GENERATESPINORBITCWH_MSGEMEM ); } memset( output->phi, 0, sizeof(REAL8TimeSeries) ); /* Set output structure metadata fields. */ output->position = params->position; output->psi = params->psi; output->a->epoch = output->f->epoch = output->phi->epoch = params->epoch; output->a->deltaT = n*params->deltaT; output->f->deltaT = output->phi->deltaT = params->deltaT; output->a->sampleUnits = lalStrainUnit; output->f->sampleUnits = lalHertzUnit; output->phi->sampleUnits = lalDimensionlessUnit; snprintf( output->a->name, LALNameLength, "CW amplitudes" ); snprintf( output->f->name, LALNameLength, "CW frequency" ); snprintf( output->phi->name, LALNameLength, "CW phase" ); /* Allocate phase and frequency arrays. */ LALSCreateVector( stat->statusPtr, &( output->f->data ), n ); BEGINFAIL( stat ) { LALFree( output->a ); output->a = NULL; LALFree( output->f ); output->f = NULL; LALFree( output->phi ); output->phi = NULL; } ENDFAIL( stat ); LALDCreateVector( stat->statusPtr, &( output->phi->data ), n ); BEGINFAIL( stat ) { TRY( LALSDestroyVector( stat->statusPtr, &( output->f->data ) ), stat ); LALFree( output->a ); output->a = NULL; LALFree( output->f ); output->f = NULL; LALFree( output->phi ); output->phi = NULL; } ENDFAIL( stat ); /* Allocate and fill amplitude array. */ { CreateVectorSequenceIn in; /* input to create output->a */ in.length = 2; in.vectorLength = 2; LALSCreateVectorSequence( stat->statusPtr, &(output->a->data), &in ); BEGINFAIL( stat ) { TRY( LALSDestroyVector( stat->statusPtr, &( output->f->data ) ), stat ); TRY( LALDDestroyVector( stat->statusPtr, &( output->phi->data ) ), stat ); LALFree( output->a ); output->a = NULL; LALFree( output->f ); output->f = NULL;
开发者ID:smirshekari,项目名称:lalsuite,代码行数:67,
示例2: snprintfchar *get_running_state_fname(const char *ve_private, char *buf, int size){ snprintf(buf, size, "%s/.running", ve_private); return buf;}
开发者ID:OpenVZ,项目名称:libvzctl,代码行数:6,
示例3: vzctl2_env_register/** Register Container * @param path Container private data root * @param param struct vzctl_reg_param * @param flags registration flags * @return veid or -1 in case error */int vzctl2_env_register(const char *path, struct vzctl_reg_param *param, int flags){ char buf[PATH_MAX]; char veconf[STR_SIZE]; char path_r[PATH_MAX]; struct stat st; int ret, err; struct vzctl_env_handle *h; FILE *fp; char ve_host[STR_SIZE]; char host[STR_SIZE]; int owner_check_res; int on_pcs, on_shared; int ha_resource_added = 0; int ha_enable = 0; const char *data, *name; ctid_t ctid = {}; ctid_t uuid = {}; /* preserve compatibility * VZ_REG_SKIP_HA_CLUSTER is alias for VZ_REG_SKIP_CLUSTER */ if (flags & VZ_REG_SKIP_HA_CLUSTER) flags |= VZ_REG_SKIP_CLUSTER; if (stat(path, &st) != 0) return vzctl_err(-1, errno, "Unable to stat %s", path); if (realpath(path, path_r) == NULL) return vzctl_err(-1, errno, "Failed to get realpath %s", path); ret = vzctl2_env_layout_version(path_r); if (ret == -1) { return -1; } else if (ret < VZCTL_LAYOUT_4) return vzctl_err(-1, 0, "Warning: Container in old data format," " registration skipped."); snprintf(veconf, sizeof(veconf), "%s/" VZCTL_VE_CONF, path_r); if (stat(veconf, &st)) { logger(-1, 0, "Error: Broken Container, no %s file found", veconf); return -1; } h = vzctl2_env_open_conf(param->ctid, veconf, 0, &err); if (h == NULL) return -1; data = param->uuid; /* get UUID from config if not specified */ if (data == NULL) vzctl2_env_get_param(h, "UUID", &data); if (get_cid_uuid_pair(param->ctid, data, ctid, uuid)) goto err; owner_check_res = vzctl_check_owner_quiet( path_r, host, sizeof(host), ve_host, sizeof(ve_host)); on_pcs = (is_pcs(path_r) == 1); on_shared = (is_shared_fs(path_r) == 1); if (vzctl2_env_get_param(h, "HA_ENABLE", &data) == 0 && data != NULL) ha_enable = yesno2id(data); if (on_pcs && ha_enable != VZCTL_PARAM_OFF && check_external_disk(path_r, h->env_param->disk) && shaman_is_configured()) { logger(-1, 0, "Containers with external disks cannot be" " registered in a High Availability cluster"); goto err; } if (!(flags & VZ_REG_FORCE)) { /* ignore renew option for pstorage (https://jira.sw.ru/browse/PSBM-16819) */ if (on_pcs) flags &= ~VZ_REG_RENEW; if (!(flags & VZ_REG_RENEW) && owner_check_res) { if (owner_check_res == VZCTL_E_ENV_MANAGE_DISABLED) { logger(-1, 0, "Owner check failed on the server %s;" " Container is registered for %s", host, ve_host); if (on_pcs) logger(0, 0, "Failed to register the Container/virtual machine. " "You can force the registration, but this will revoke " "all access to the Container from the original server."); } goto err; } if (validate_eid(h, &st, ctid)) goto err; } else if ((owner_check_res == VZCTL_E_ENV_MANAGE_DISABLED) && on_shared) {//.........这里部分代码省略.........
开发者ID:OpenVZ,项目名称:libvzctl,代码行数:101,
示例4: CGPS9_23LogPositionvoid CGPS9_23LogPosition (uint8_t vl_index, uint32_t Status_Code, s_GN_GPS_Nav_Data *pl_nav_data_to_use){#if defined( CMCC_LOGGING_ENABLE ) && defined( AGPS_UP_FTR ) int8_t Session_Start[20], Session_End[20]; switch( Status_Code ) { case CGPS_SUPL_CMCC_AGPS_SESSION_STARTED: sprintf( (char*)Session_Start , "%d" , 0 ); GN_SUPL_Write_Event_Log_CMCC(CGPS_SUPL_CMCC_AGPS_SESSION_STARTED , Session_Start , "session starts"); break; case CGPS_SUPL_CMCC_REPONSE_TIMEOUT_CODE: if (pl_nav_data_to_use != NULL) { if(pl_nav_data_to_use->Valid_SingleFix || pl_nav_data_to_use->Valid_SingleFix) { /*we have a fix but don't reach the quality*/ sprintf( s_CmccLog, "%i, %04d%02d%02d%02d%02d%02d.%03d, %f, %f, %f, %f, # Position(Timestamp, lat, lon, orientation, height) time to fix : %ld ms", s_CgpsSupl[vl_index].v_GPSHandle, pl_nav_data_to_use->Year, pl_nav_data_to_use->Month, pl_nav_data_to_use->Day, pl_nav_data_to_use->Hours, pl_nav_data_to_use->Minutes, pl_nav_data_to_use->Seconds, pl_nav_data_to_use->Milliseconds, pl_nav_data_to_use->Latitude, pl_nav_data_to_use->Longitude, pl_nav_data_to_use->CourseOverGround, pl_nav_data_to_use->Altitude_MSL, GN_GPS_Get_OS_Time_ms()-s_CgpsNaf[vl_index].v_RegisterTime); GN_SUPL_Write_Event_Log_CMCC(CGPS_SUPL_CMCC_REPONSE_TIMEOUT_CODE, (char*)s_CmccLog, CGPS_SUPL_CMCC_POSITION_QUALITY_NOT_REACHED_STRING); } else { /*no fix*/ snprintf( s_CmccLog,CGPS_SUPL_CMCC_STRING_MAX_LENGHT-1, "%i",s_CgpsSupl[vl_index].v_GPSHandle); GN_SUPL_Write_Event_Log_CMCC(CGPS_SUPL_CMCC_REPONSE_TIMEOUT_CODE, (char*)s_CmccLog, CGPS_SUPL_CMCC_CANNOT_PRODUCE_POSITION_WITHIN_RESP_TIME_STRING); } } else { sprintf( s_CmccLog, "%i, %04d%02d%02d%02d%02d%02d.%03d, %f, %f, %f, %f, # Position(Timestamp, lat, lon, orientation, height) time to fix : %ld ms", s_CgpsSupl[vl_index].v_GPSHandle, vg_Nav_Data.Year, vg_Nav_Data.Month, vg_Nav_Data.Day, vg_Nav_Data.Hours, vg_Nav_Data.Minutes, vg_Nav_Data.Seconds, vg_Nav_Data.Milliseconds, vg_Nav_Data.Latitude, vg_Nav_Data.Longitude, vg_Nav_Data.CourseOverGround, vg_Nav_Data.Altitude_MSL, GN_GPS_Get_OS_Time_ms()-s_CgpsSupl[vl_index].v_RegisterTime); GN_SUPL_Write_Event_Log_CMCC(CGPS_SUPL_CMCC_REPONSE_TIMEOUT_CODE, (char*)s_CmccLog, NULL); } break; case CGPS_SUPL_CMCC_POSITION_RESULT_CODE: if (pl_nav_data_to_use != NULL) { sprintf( s_CmccLog, "%i, %04d%02d%02d%02d%02d%02d.%03d, %f, %f, %f, %f, # Position(Timestamp, lat, lon, orientation, height) time to fix : %ld ms", s_CgpsSupl[vl_index].v_GPSHandle, pl_nav_data_to_use->Year, pl_nav_data_to_use->Month, pl_nav_data_to_use->Day, pl_nav_data_to_use->Hours, pl_nav_data_to_use->Minutes, pl_nav_data_to_use->Seconds, pl_nav_data_to_use->Milliseconds, pl_nav_data_to_use->Latitude, pl_nav_data_to_use->Longitude, pl_nav_data_to_use->CourseOverGround, pl_nav_data_to_use->Altitude_MSL, GN_GPS_Get_OS_Time_ms()-s_CgpsNaf[vl_index].v_RegisterTime); GN_SUPL_Write_Event_Log_CMCC(CGPS_SUPL_CMCC_POSITION_RESULT_CODE, (char*)s_CmccLog, NULL); } break; case CGPS_SUPL_CMCC_NETWORKCONNECTION_CODE: snprintf(s_CmccLog, CGPS_SUPL_CMCC_STRING_MAX_LENGHT-1, "%i",s_CgpsSupl[vl_index].v_GPSHandle); GN_SUPL_Write_Event_Log_CMCC(CGPS_SUPL_CMCC_NETWORKCONNECTION_CODE,(char*)s_CmccLog,CGPS_SUPL_CMCC_NETWORKCONNECTION_STRING); break; case CGPS_SUPL_CMCC_NO_NETWORKCONNECTION_CODE: if (vl_index == 0xFF) { snprintf(s_CmccLog, CGPS_SUPL_CMCC_STRING_MAX_LENGHT-1, "%x", 0xFFFFFFFF); GN_SUPL_Write_Event_Log_CMCC(CGPS_SUPL_CMCC_NO_NETWORKCONNECTION_CODE, (char*)s_CmccLog, CGPS_SUPL_CMCC_AUTONOMOUS_SET_STRING); } else { snprintf(s_CmccLog, CGPS_SUPL_CMCC_STRING_MAX_LENGHT-1,"%i",s_CgpsSupl[vl_index].v_GPSHandle); GN_SUPL_Write_Event_Log_CMCC(CGPS_SUPL_CMCC_NO_NETWORKCONNECTION_CODE, (char*)s_CmccLog, CGPS_SUPL_CMCC_NO_NETWORKCONNECTION_STRING); } break; case CGPS_SUPL_CMCC_NETWORKCONNECTION_FAILURE_CODE: snprintf(s_CmccLog, CGPS_SUPL_CMCC_STRING_MAX_LENGHT-1, "%i",s_CgpsSupl[vl_index].v_GPSHandle); GN_SUPL_Write_Event_Log_CMCC(CGPS_SUPL_CMCC_NETWORKCONNECTION_FAILURE_CODE, (char*)s_CmccLog, CGPS_SUPL_CMCC_NETWORKCONNECTION_FAILURE_STRING); break; case CGPS_SUPL_CMCC_SERVERCONNECTION_CODE: snprintf(s_CmccLog, CGPS_SUPL_CMCC_STRING_MAX_LENGHT-1, "%i",s_CgpsSupl[vl_index].v_GPSHandle); GN_SUPL_Write_Event_Log_CMCC(CGPS_SUPL_CMCC_SERVERCONNECTION_CODE,(char*)s_CmccLog,CGPS_SUPL_CMCC_SERVERCONNECTION_STRING); break; case CGPS_SUPL_CMCC_SERVERCONNECTION_FAILURE_CODE: snprintf(s_CmccLog, CGPS_SUPL_CMCC_STRING_MAX_LENGHT-1, "%i",s_CgpsSupl[vl_index].v_GPSHandle); GN_SUPL_Write_Event_Log_CMCC(CGPS_SUPL_CMCC_SERVERCONNECTION_FAILURE_CODE,(char*)s_CmccLog,CGPS_SUPL_CMCC_SERVERCONNECTION_FAILURE_STRING); break; case CGPS_SUPL_CMCC_AGPS_SESSION_ENDED: sprintf( (char*)Session_End , "%d" , 0 ); GN_SUPL_Write_Event_Log_CMCC(CGPS_SUPL_CMCC_AGPS_SESSION_STARTED , Session_End , "session ends"); break;//.........这里部分代码省略.........
开发者ID:DevSwift,项目名称:android_hardware_ste-sony,代码行数:101,
示例5: T/*********************************************************************CREATE TABLE T( c1 VARCHAR(n), c2 INT NOT NULL, c3 FLOAT, c4 DOUBLE, c5 BLOB, c6 DECIMAL, PK(c1)); */staticib_err_tcreate_table(/*=========*/ const char* dbname, /*!< in: database name */ const char* name) /*!< in: table name */{ ib_trx_t ib_trx; ib_id_t table_id = 0; ib_err_t err = DB_SUCCESS; ib_tbl_sch_t ib_tbl_sch = NULL; ib_idx_sch_t ib_idx_sch = NULL; char table_name[IB_MAX_TABLE_NAME_LEN];#ifdef __WIN__ sprintf(table_name, "%s/%s", dbname, name);#else snprintf(table_name, sizeof(table_name), "%s/%s", dbname, name);#endif /* Pass a table page size of 0, ie., use default page size. */ err = ib_table_schema_create( table_name, &ib_tbl_sch, IB_TBL_COMPACT, 0); assert(err == DB_SUCCESS); err = ib_table_schema_add_col( ib_tbl_sch, "c1", IB_VARCHAR, IB_COL_NONE, 0, 10); assert(err == DB_SUCCESS); err = ib_table_schema_add_col( ib_tbl_sch, "c2", IB_INT, IB_COL_NOT_NULL, 0, sizeof(ib_u32_t)); assert(err == DB_SUCCESS); err = ib_table_schema_add_col( ib_tbl_sch, "c3", IB_FLOAT, IB_COL_NONE, 0, sizeof(float)); assert(err == DB_SUCCESS); err = ib_table_schema_add_col( ib_tbl_sch, "c4", IB_DOUBLE, IB_COL_NONE, 0, sizeof(double)); assert(err == DB_SUCCESS); err = ib_table_schema_add_col( ib_tbl_sch, "c5", IB_BLOB, IB_COL_NONE, 0, 0); assert(err == DB_SUCCESS); err = ib_table_schema_add_col( ib_tbl_sch, "c6", IB_DECIMAL, IB_COL_NONE, 0, 0); assert(err == DB_SUCCESS); err = ib_table_schema_add_index(ib_tbl_sch, "PRIMARY", &ib_idx_sch); assert(err == DB_SUCCESS); /* Set prefix length to 0. */ err = ib_index_schema_add_col( ib_idx_sch, "c1", 0); assert(err == DB_SUCCESS); err = ib_index_schema_set_clustered(ib_idx_sch); assert(err == DB_SUCCESS); /* create table */ ib_trx = ib_trx_begin(IB_TRX_REPEATABLE_READ); err = ib_schema_lock_exclusive(ib_trx); assert(err == DB_SUCCESS); err = ib_table_create(ib_trx, ib_tbl_sch, &table_id); assert(err == DB_SUCCESS); err = ib_trx_commit(ib_trx); assert(err == DB_SUCCESS); if (ib_tbl_sch != NULL) { ib_table_schema_delete(ib_tbl_sch); } return(err);}
开发者ID:toffaletti,项目名称:turtle,代码行数:87,
示例6: dbg_mask_showstatic ssize_t dbg_mask_show(struct device *d, struct device_attribute *attr, char *buf){ return snprintf(buf, PAGE_SIZE, "%d/n", data_msg_dbg_mask);}
开发者ID:android-armv7a-belalang-tempur,项目名称:android_kernel_samsung_smdk4210-1,代码行数:5,
示例7: dm4_dive//.........这里部分代码省略......... */ if (data[3]) state->cur_dive->duration.seconds = atoi(data[3]); if (data[15]) state->cur_dive->dc.duration.seconds = atoi(data[15]); /* * TODO: the deviceid hash should be calculated here. */ settings_start(state); dc_settings_start(state); if (data[4]) utf8_string(data[4], &state->cur_settings.dc.serial_nr); if (data[5]) utf8_string(data[5], &state->cur_settings.dc.model); state->cur_settings.dc.deviceid = 0xffffffff; dc_settings_end(state); settings_end(state); if (data[6]) state->cur_dive->dc.maxdepth.mm = lrint(strtod_flags(data[6], NULL, 0) * 1000); if (data[8]) state->cur_dive->dc.airtemp.mkelvin = C_to_mkelvin(atoi(data[8])); if (data[9]) state->cur_dive->dc.watertemp.mkelvin = C_to_mkelvin(atoi(data[9])); /* * TODO: handle multiple cylinders */ cylinder_start(state); if (data[22] && atoi(data[22]) > 0) state->cur_dive->cylinder[state->cur_cylinder_index].start.mbar = atoi(data[22]); else if (data[10] && atoi(data[10]) > 0) state->cur_dive->cylinder[state->cur_cylinder_index].start.mbar = atoi(data[10]); if (data[23] && atoi(data[23]) > 0) state->cur_dive->cylinder[state->cur_cylinder_index].end.mbar = (atoi(data[23])); if (data[11] && atoi(data[11]) > 0) state->cur_dive->cylinder[state->cur_cylinder_index].end.mbar = (atoi(data[11])); if (data[12]) state->cur_dive->cylinder[state->cur_cylinder_index].type.size.mliter = lrint((strtod_flags(data[12], NULL, 0)) * 1000); if (data[13]) state->cur_dive->cylinder[state->cur_cylinder_index].type.workingpressure.mbar = (atoi(data[13])); if (data[20]) state->cur_dive->cylinder[state->cur_cylinder_index].gasmix.o2.permille = atoi(data[20]) * 10; if (data[21]) state->cur_dive->cylinder[state->cur_cylinder_index].gasmix.he.permille = atoi(data[21]) * 10; cylinder_end(state); if (data[14]) state->cur_dive->dc.surface_pressure.mbar = (atoi(data[14]) * 1000); interval = data[16] ? atoi(data[16]) : 0; profileBlob = (float *)data[17]; tempBlob = (unsigned char *)data[18]; pressureBlob = (int *)data[19]; for (i = 0; interval && i * interval < state->cur_dive->duration.seconds; i++) { sample_start(state); state->cur_sample->time.seconds = i * interval; if (profileBlob) state->cur_sample->depth.mm = lrintf(profileBlob[i] * 1000.0f); else state->cur_sample->depth.mm = state->cur_dive->dc.maxdepth.mm; if (data[18] && data[18][0]) state->cur_sample->temperature.mkelvin = C_to_mkelvin(tempBlob[i]); if (data[19] && data[19][0]) state->cur_sample->pressure[0].mbar = pressureBlob[i]; sample_end(state); } snprintf(get_events, sizeof(get_events) - 1, get_events_template, state->cur_dive->number); retval = sqlite3_exec(handle, get_events, &dm4_events, state, &err); if (retval != SQLITE_OK) { fprintf(stderr, "%s", "Database query dm4_events failed./n"); return 1; } snprintf(get_events, sizeof(get_events) - 1, get_tags_template, state->cur_dive->number); retval = sqlite3_exec(handle, get_events, &dm4_tags, state, &err); if (retval != SQLITE_OK) { fprintf(stderr, "%s", "Database query dm4_tags failed./n"); return 1; } dive_end(state); /* for (i=0; i<columns;++i) { fprintf(stderr, "%s/t", column[i]); } fprintf(stderr, "/n"); for (i=0; i<columns;++i) { fprintf(stderr, "%s/t", data[i]); } fprintf(stderr, "/n"); //exit(0); */ return SQLITE_OK;}
开发者ID:dirkhh,项目名称:subsurface,代码行数:101,
示例8: time_string// pretty print elapsed (or estimated) number of secondsstatic void time_string(uint32_t time, int est, char *buf, size_t len){ int y = time / 31556736; int d = (time % 31556736) / 86400; int h = (time % 86400) / 3600; int m = (time % 3600) / 60; int s = time % 60; if (est) { if (y > 0) { snprintf(buf, len, "%d years", y); } else if (d > 9) { snprintf(buf, len, "%dd", d); } else if (d > 0) { snprintf(buf, len, "%dd%02dh", d, h); } else if (h > 9) { snprintf(buf, len, "%dh", h); } else if (h > 0) { snprintf(buf, len, "%dh%02dm", h, m); } else if (m > 9) { snprintf(buf, len, "%dm", m); } else if (m > 0) { snprintf(buf, len, "%dm%02ds", m, s); } else { snprintf(buf, len, "%ds", s); } } else { if (d > 0) { snprintf(buf, len, "%dd%d:%02d:%02d", d, h, m, s); } else if (h > 0) { snprintf(buf, len, "%d:%02d:%02d", h, m, s); } else { snprintf(buf, len, "%d:%02d", m, s); } }}
开发者ID:baiyunping333,项目名称:zmap,代码行数:37,
示例9: r_anal_value_to_string// TODO: use esil here?R_API char *r_anal_op_to_string(RAnal *anal, RAnalOp *op) { RAnalFunction *f; char ret[128]; char *cstr; char *r0 = r_anal_value_to_string (op->dst); char *a0 = r_anal_value_to_string (op->src[0]); char *a1 = r_anal_value_to_string (op->src[1]); switch (op->type) { case R_ANAL_OP_TYPE_MOV: snprintf (ret, sizeof (ret), "%s = %s", r0, a0); break; case R_ANAL_OP_TYPE_CJMP: { RAnalBlock *bb = r_anal_bb_from_offset (anal, op->addr); if (bb) { cstr = r_anal_cond_to_string (bb->cond); snprintf (ret, sizeof (ret), "if (%s) goto 0x%"PFMT64x, cstr, op->jump); free (cstr); } else snprintf (ret, sizeof (ret), "if (%s) goto 0x%"PFMT64x, "unk", op->jump); } break; case R_ANAL_OP_TYPE_JMP: snprintf (ret, sizeof (ret), "goto 0x%"PFMT64x, op->jump); break; case R_ANAL_OP_TYPE_UJMP: snprintf (ret, sizeof (ret), "goto %s", r0); break; case R_ANAL_OP_TYPE_PUSH: case R_ANAL_OP_TYPE_UPUSH: snprintf (ret, sizeof (ret), "push %s", a0); break; case R_ANAL_OP_TYPE_POP: snprintf (ret, sizeof (ret), "pop %s", r0); break; case R_ANAL_OP_TYPE_UCALL: snprintf (ret, sizeof (ret), "%s()", r0); break; case R_ANAL_OP_TYPE_CALL: f = r_anal_get_fcn_in (anal, op->jump, R_ANAL_FCN_TYPE_NULL); if (f) snprintf (ret, sizeof (ret), "%s()", f->name); else snprintf (ret, sizeof (ret), "0x%"PFMT64x"()", op->jump); break; case R_ANAL_OP_TYPE_CCALL: f = r_anal_get_fcn_in (anal, op->jump, R_ANAL_FCN_TYPE_NULL); { RAnalBlock *bb = r_anal_bb_from_offset (anal, op->addr); if (bb) { cstr = r_anal_cond_to_string (bb->cond); if (f) snprintf (ret, sizeof (ret), "if (%s) %s()", cstr, f->name); else snprintf (ret, sizeof (ret), "if (%s) 0x%"PFMT64x"()", cstr, op->jump); free (cstr); } else { if (f) snprintf (ret, sizeof (ret), "if (unk) %s()", f->name); else snprintf (ret, sizeof (ret), "if (unk) 0x%"PFMT64x"()", op->jump); } } break; case R_ANAL_OP_TYPE_ADD: if (a1 == NULL || !strcmp (a0, a1)) snprintf (ret, sizeof (ret), "%s += %s", r0, a0); else snprintf (ret, sizeof (ret), "%s = %s + %s", r0, a0, a1); break; case R_ANAL_OP_TYPE_SUB: if (a1 == NULL || !strcmp (a0, a1)) snprintf (ret, sizeof (ret), "%s -= %s", r0, a0); else snprintf (ret, sizeof (ret), "%s = %s - %s", r0, a0, a1); break; case R_ANAL_OP_TYPE_MUL: if (a1 == NULL || !strcmp (a0, a1)) snprintf (ret, sizeof (ret), "%s *= %s", r0, a0); else snprintf (ret, sizeof (ret), "%s = %s * %s", r0, a0, a1); break; case R_ANAL_OP_TYPE_DIV: if (a1 == NULL || !strcmp (a0, a1)) snprintf (ret, sizeof (ret), "%s /= %s", r0, a0); else snprintf (ret, sizeof (ret), "%s = %s / %s", r0, a0, a1); break; case R_ANAL_OP_TYPE_AND: if (a1 == NULL || !strcmp (a0, a1)) snprintf (ret, sizeof (ret), "%s &= %s", r0, a0); else snprintf (ret, sizeof (ret), "%s = %s & %s", r0, a0, a1); break; case R_ANAL_OP_TYPE_OR: if (a1 == NULL || !strcmp (a0, a1)) snprintf (ret, sizeof (ret), "%s |= %s", r0, a0); else snprintf (ret, sizeof (ret), "%s = %s | %s", r0, a0, a1); break; case R_ANAL_OP_TYPE_XOR: if (a1 == NULL || !strcmp (a0, a1)) snprintf (ret, sizeof (ret), "%s ^= %s", r0, a0); else snprintf (ret, sizeof (ret), "%s = %s ^ %s", r0, a0, a1); break; case R_ANAL_OP_TYPE_LEA: snprintf (ret, sizeof (ret), "%s -> %s", r0, a0); break; case R_ANAL_OP_TYPE_CMP: memcpy (ret, ";", 2); break;//.........这里部分代码省略.........
开发者ID:deeso,项目名称:radare2,代码行数:101,
示例10: XMLRPC_to_xml_element_workerxml_element* XMLRPC_to_xml_element_worker(XMLRPC_VALUE current_vector, XMLRPC_VALUE node, XMLRPC_REQUEST_TYPE request_type, int depth) {#define BUF_SIZE 512 xml_element* root = NULL; if (node) { char buf[BUF_SIZE]; XMLRPC_VALUE_TYPE type = XMLRPC_GetValueType(node); XMLRPC_VECTOR_TYPE vtype = XMLRPC_GetVectorType(node); xml_element* elem_val = xml_elem_new(); /* special case for when root element is not an array */ if (depth == 0 && !(type == xmlrpc_vector && vtype == xmlrpc_vector_array && request_type == xmlrpc_request_call) ) { int bIsFault = (vtype == xmlrpc_vector_struct && XMLRPC_VectorGetValueWithID(node, ELEM_FAULTCODE)); xml_element* next_el = XMLRPC_to_xml_element_worker(NULL, node, request_type, depth + 1); if (next_el) { Q_PushTail(&elem_val->children, next_el); } elem_val->name = strdup(bIsFault ? ELEM_FAULT : ELEM_PARAMS); } else { switch (type) { case xmlrpc_empty: // treat null value as empty string in xmlrpc. case xmlrpc_string: elem_val->name = strdup(ELEM_STRING); simplestring_addn(&elem_val->text, XMLRPC_GetValueString(node), XMLRPC_GetValueStringLen(node)); break; case xmlrpc_int: elem_val->name = strdup(ELEM_INT); snprintf(buf, BUF_SIZE, "%i", XMLRPC_GetValueInt(node)); simplestring_add(&elem_val->text, buf); break; case xmlrpc_boolean: elem_val->name = strdup(ELEM_BOOLEAN); snprintf(buf, BUF_SIZE, "%i", XMLRPC_GetValueBoolean(node)); simplestring_add(&elem_val->text, buf); break; case xmlrpc_double: elem_val->name = strdup(ELEM_DOUBLE); snprintf(buf, BUF_SIZE, "%f", XMLRPC_GetValueDouble(node)); simplestring_add(&elem_val->text, buf); break; case xmlrpc_datetime: elem_val->name = strdup(ELEM_DATETIME); simplestring_add(&elem_val->text, XMLRPC_GetValueDateTime_ISO8601(node)); break; case xmlrpc_base64: { struct buffer_st buf; elem_val->name = strdup(ELEM_BASE64); base64_encode(&buf, XMLRPC_GetValueBase64(node), XMLRPC_GetValueStringLen(node)); simplestring_addn(&elem_val->text, buf.data, buf.offset ); buffer_delete(&buf); } break; case xmlrpc_vector: { XMLRPC_VECTOR_TYPE my_type = XMLRPC_GetVectorType(node); XMLRPC_VALUE xIter = XMLRPC_VectorRewind(node); xml_element* root_vector_elem = elem_val; switch (my_type) { case xmlrpc_vector_array: { if(depth == 0) { elem_val->name = strdup(ELEM_PARAMS); } else { /* Hi my name is Dave and I like to make things as confusing * as possible, thus I will throw in this 'data' element * where it absolutely does not belong just so that people * cannot code arrays and structs in a similar and straight * forward manner. Have a good day. * * GRRRRRRRRR! */ xml_element* data = xml_elem_new(); data->name = strdup(ELEM_DATA); elem_val->name = strdup(ELEM_ARRAY); Q_PushTail(&elem_val->children, data); root_vector_elem = data; } } break; case xmlrpc_vector_mixed: /* not officially supported */ case xmlrpc_vector_struct: elem_val->name = strdup(ELEM_STRUCT); break; default: break; } /* recurse through sub-elements */ while ( xIter ) { xml_element* next_el = XMLRPC_to_xml_element_worker(node, xIter, request_type, depth + 1); if (next_el) {//.........这里部分代码省略.........
开发者ID:Htbaa,项目名称:xmlrpc.mod,代码行数:101,
示例11: monitor_updatestatic void monitor_update(iterator_t *it, pthread_mutex_t *recv_ready_mutex){ uint32_t total_sent = iterator_get_sent(it); if (last_now > 0.0) { double age = now() - zsend.start; double delta = now() - last_now; double remaining_secs = compute_remaining_time(age, total_sent); double percent_complete = 100.*age/(age + remaining_secs); // ask pcap for fresh values pthread_mutex_lock(recv_ready_mutex); recv_update_pcap_stats(); pthread_mutex_unlock(recv_ready_mutex); // format times for display char time_left[20]; if (age < 5) { time_left[0] = '/0'; } else { char buf[20]; time_string((int)remaining_secs, 1, buf, sizeof(buf)); snprintf(time_left, sizeof(time_left), " (%s left)", buf); } char time_past[20]; time_string((int)age, 0, time_past, sizeof(time_past)); char send_rate[20], send_avg[20], recv_rate[20], recv_avg[20], pcap_drop[20], pcap_drop_avg[20]; // recv stats number_string((zrecv.success_unique - last_rcvd)/delta, recv_rate, sizeof(recv_rate)); number_string((zrecv.success_unique/age), recv_avg, sizeof(recv_avg)); // dropped stats number_string((zrecv.pcap_drop + zrecv.pcap_ifdrop - last_drop)/delta, pcap_drop, sizeof(pcap_drop)); number_string(((zrecv.pcap_drop + zrecv.pcap_ifdrop)/age), pcap_drop_avg, sizeof(pcap_drop_avg)); // Warn if we drop > 5% of our average receive rate uint32_t drop_rate = (uint32_t)((zrecv.pcap_drop + zrecv.pcap_ifdrop - last_drop) / delta); if (drop_rate > (uint32_t)((zrecv.success_unique - last_rcvd) / delta) / 20) { log_warn("monitor", "Dropped %d packets in the last second, (%d total dropped (pcap: %d + iface: %d))", drop_rate, zrecv.pcap_drop + zrecv.pcap_ifdrop, zrecv.pcap_drop, zrecv.pcap_ifdrop); } // Warn if we fail to send > 1% of our average send rate uint32_t fail_rate = (uint32_t)((zsend.sendto_failures - last_failures) / delta); // failures/sec if (fail_rate > ((total_sent / age) / 100)) { log_warn("monitor", "Failed to send %d packets/sec (%d total failures)", fail_rate, zsend.sendto_failures); } float hits; if (!total_sent) { hits = 0; } else { hits = zrecv.success_unique*100./total_sent; } if (!zsend.complete) { // main display (during sending) number_string((total_sent - last_sent)/delta, send_rate, sizeof(send_rate)); number_string((total_sent/age), send_avg, sizeof(send_avg)); fprintf(stderr, "%5s %0.0f%%%s; send: %u %sp/s (%sp/s avg); " "recv: %u %sp/s (%sp/s avg); " "drops: %sp/s (%sp/s avg); " "hits: %0.2f%%/n", time_past, percent_complete, time_left, total_sent, send_rate, send_avg, zrecv.success_unique, recv_rate, recv_avg, pcap_drop, pcap_drop_avg, hits); } else { // alternate display (during cooldown) number_string((total_sent/(zsend.finish - zsend.start)), send_avg, sizeof(send_avg)); fprintf(stderr, "%5s %0.0f%%%s; send: %u done (%sp/s avg); " "recv: %u %sp/s (%sp/s avg); " "drops: %sp/s (%sp/s avg); " "hits: %0.2f%%/n", time_past, percent_complete, time_left, total_sent, send_avg, zrecv.success_unique, recv_rate, recv_avg, pcap_drop, pcap_drop_avg, hits);//.........这里部分代码省略.........
开发者ID:baiyunping333,项目名称:zmap,代码行数:101,
示例12: Create_Semaphoreint Create_Semaphore (const char *name, int ival){// struct Semaphore *pSem = 0, *pSemNew = NULL, sem; struct Semaphore *pSem; int id = 0;//Print("ARGS. name: %s, ival: %d/n", name, ival); /* * Obtiene el primer elemento de la lista y lo * recorre hasta el final para ver que ID le asigna * al semáforo solicitado (poco eficiente). */ pSem = Get_Front_Of_Semaphore_List(&s_semList);// Print("LISTA ARRANCA EN %p/n", pSem); while (pSem != 0) { KASSERT(pSem != Get_Next_In_Semaphore_List(pSem)); if (strcmp(pSem->name, name) == 0) { pSem->nref++;#ifdef DEBUG Print("Semaforo %s ya existe con id %d./n", name, pSem->id);#endif Print("Semaforo %s ya existe con id %d./n", name, pSem->id); return pSem->id; } pSem = Get_Next_In_Semaphore_List(pSem); id++; } /* La cantidad máxima de semáforos está siendo utilizada. */ if (id >= MAX_SEM) return -1; pSem = Malloc(sizeof (struct Semaphore));// Print("ANTES: ");// Dump_All_Semaphore_List();// sem.id = id; pSem->id = id; /* Define nombre del semáforo */// snprintf(sem.name, sizeof(sem.name), "%s", name); snprintf(pSem->name, NAMESIZE, "%s", name); /* Define valor inicial del semáforo */// sem.value = ival; pSem->value = ival; /* Referencia a 1 */// sem.nref = 1; pSem->nref = 1;/* pSemNew = Malloc(sizeof (struct Semaphore)); pSemNew = &sem;*/ /* Agrega semáforo a la lista */// Add_To_Back_Of_Semaphore_List(&s_semList, &sem);// Add_To_Back_Of_Semaphore_List(&s_semList, pSemNew); Add_To_Back_Of_Semaphore_List(&s_semList, pSem);/* sem = Get_Front_Of_Semaphore_List(&s_semList); while (sem != NULL) { KASSERT(sem != Get_Next_In_Semaphore_List(sem)); Print("ESTE ID ya esta: %d/n", sem->id); sem = Get_Next_In_Semaphore_List(sem); }*/ Print("DESPUES: "); Dump_All_Semaphore_List();#ifdef DEBUG Print("ID: %d/n", id);#endif return id;}
开发者ID:rjrpaz,项目名称:os-implementation,代码行数:75,
示例13: START_TESTEND_TESTSTART_TEST(importdb_can_parse_exported_database){ int i; char buffer[512]; DATA filleddb; FILE *exportfile; initdb(); strcpy(data.interface, "something"); strcpy(data.nick, "nothing"); data.totalrx = 1; data.totaltx = 2; data.currx = 3; data.curtx = 4; data.totalrxk = 5; data.totaltxk = 6; data.btime = 7; for (i=0; i<30; i++) { data.day[i].date = i+1; data.day[i].rx = data.day[i].tx = i*100; data.day[i].rxk = data.day[i].txk = i; data.day[i].used = 1; } for (i=0; i<10; i++) { data.top10[i].date = i+1; data.top10[i].rx = data.top10[i].tx = i*100; data.top10[i].rxk = data.top10[i].txk = i; data.top10[i].used = 1; } for (i=0; i<12; i++) { data.month[i].month = i+1; data.month[i].rx = data.month[i].tx = i*100; data.month[i].rxk = data.month[i].txk = i; data.month[i].used = 1; } for (i=0; i<24; i++) { data.hour[i].date = i+1; data.hour[i].rx = data.hour[i].tx = i*100; } memcpy(&filleddb, &data, sizeof(DATA)); ck_assert_int_eq(remove_directory(TESTDIR), 1); ck_assert_int_eq(clean_testdbdir(), 1); fflush(stdout); snprintf(buffer, 512, "%s/dbexport", TESTDBDIR); exportfile = fopen(buffer, "w"); dup2(fileno(exportfile), STDOUT_FILENO); fclose(exportfile); exportdb(); fflush(stdout); memset(&data, '/0', sizeof(DATA)); ck_assert_int_gt(importdb(buffer), 0); ck_assert_str_eq(data.interface, filleddb.interface); ck_assert_str_eq(data.nick, filleddb.nick); ck_assert_int_eq(data.version, filleddb.version); ck_assert_int_eq(data.active, filleddb.active); ck_assert_int_eq(data.totalrx, filleddb.totalrx); ck_assert_int_eq(data.totaltx, filleddb.totaltx); ck_assert_int_eq(data.currx, filleddb.currx); ck_assert_int_eq(data.curtx, filleddb.curtx); ck_assert_int_eq(data.totalrxk, filleddb.totalrxk); ck_assert_int_eq(data.totaltxk, filleddb.totaltxk); ck_assert_int_eq(data.btime, filleddb.btime); ck_assert_int_eq(data.created, filleddb.created); ck_assert_int_eq(data.lastupdated, filleddb.lastupdated); for (i=0; i<30; i++) { ck_assert_int_eq(data.day[i].date, filleddb.day[i].date); ck_assert_int_eq(data.day[i].rx, filleddb.day[i].rx); ck_assert_int_eq(data.day[i].tx, filleddb.day[i].tx); ck_assert_int_eq(data.day[i].rxk, filleddb.day[i].rxk); ck_assert_int_eq(data.day[i].txk, filleddb.day[i].txk); ck_assert_int_eq(data.day[i].used, filleddb.day[i].used); } for (i=0; i<10; i++) { ck_assert_int_eq(data.top10[i].date, filleddb.top10[i].date); ck_assert_int_eq(data.top10[i].rx, filleddb.top10[i].rx); ck_assert_int_eq(data.top10[i].tx, filleddb.top10[i].tx); ck_assert_int_eq(data.top10[i].rxk, filleddb.top10[i].rxk); ck_assert_int_eq(data.top10[i].txk, filleddb.top10[i].txk); ck_assert_int_eq(data.top10[i].used, filleddb.top10[i].used); } for (i=0; i<12; i++) { ck_assert_int_eq(data.month[i].month, filleddb.month[i].month); ck_assert_int_eq(data.month[i].rx, filleddb.month[i].rx); ck_assert_int_eq(data.month[i].tx, filleddb.month[i].tx); ck_assert_int_eq(data.month[i].rxk, filleddb.month[i].rxk); ck_assert_int_eq(data.month[i].txk, filleddb.month[i].txk); ck_assert_int_eq(data.month[i].used, filleddb.month[i].used);//.........这里部分代码省略.........
开发者ID:alliadt,项目名称:vnstat,代码行数:101,
示例14: rpc_callint rpc_call(struct rpc_context *context, const struct rpc_target *dest, const struct method_t *method, rpc_callback client_cb, void *data) { //TODO: check the protocol in dest->proto and do http // request only if dest->proto == HTTP int res = 1; struct evhttp_connection *evcon = NULL; struct evhttp_request *req = NULL; char *json_method = NULL; struct client_rpc_callback_with_data *ctx = NULL; //TODO: can be make http_connection as part of peer_t? evcon = evhttp_connection_base_new( context->base, NULL, dest->host, dest->port); if (!evcon) { goto cleanup; } ctx = (struct client_rpc_callback_with_data *)malloc( sizeof(struct client_rpc_callback_with_data)); if(!ctx) { goto cleanup; } ctx->cb = client_cb; ctx->data = data; ctx->evcon = evcon; req = evhttp_request_new(http_request_done, ctx); if (!req) { goto cleanup; } char uri[256]; snprintf(uri, sizeof(uri)-1, "http://%s:%d/rpc", dest->host, dest->port); json_method = serialize_method_call(method); if(!json_method) { goto cleanup; } struct evbuffer *output_buffer = evhttp_request_get_output_buffer(req); evbuffer_add(output_buffer, json_method, strlen(json_method)); char content_length[20]; snprintf(content_length, sizeof(content_length)-1, "%d", (int)strlen(json_method)); struct evkeyvalq *output_headers = evhttp_request_get_output_headers(req); evhttp_add_header(output_headers, "Host", dest->host); evhttp_add_header(output_headers, "Connection", "close"); evhttp_add_header(output_headers, "Content-Length", content_length); printf("Sending req %p with ctx = %p/n", req, ctx); int r = evhttp_make_request(evcon, req, EVHTTP_REQ_POST, uri); if(!r) { res = 0; }cleanup: if(json_method) free(json_method); if(res && ctx) free(ctx); if(res && evcon) evhttp_connection_free(evcon); if(res && req) evhttp_request_free(req); return res;}
开发者ID:dyustc,项目名称:searaft,代码行数:69,
示例15: outvolstatic voidoutvol(struct cfent **eptlist, int eptnum, int part, int nparts){ FILE *fp; char *svpt, *path, temp[PATH_MAX]; int i; if (nparts > 1) (void) fprintf(stderr, gettext(" -- part %2d:/n"), part); if (part == 1) { /* re-write pkgmap, but exclude local pathnames */ (void) snprintf(temp, sizeof (temp), "%s/pkgmap", pkgloc); if ((fp = fopen(temp, "w")) == NULL) { progerr(gettext(ERR_TEMP), errno); quit(99); } (void) fprintf(fp, ": %d %ld/n", nparts, limit); for (i = 0; eptlist[i]; i++) { svpt = eptlist[i]->ainfo.local; if (!strchr("sl", eptlist[i]->ftype)) eptlist[i]->ainfo.local = NULL; if (ppkgmap(eptlist[i], fp)) { progerr(gettext(ERR_TEMP), errno); quit(99); } eptlist[i]->ainfo.local = svpt; } (void) fclose(fp); (void) fprintf(stderr, "%s/n", temp); } (void) snprintf(temp, sizeof (temp), "%s/pkginfo", pkgloc); if (copyf(svept->ainfo.local, temp, svept->cinfo.modtime)) quit(1); (void) fprintf(stderr, "%s/n", temp); for (i = 0; i < eptnum; i++) { if (eptlist[i]->volno != part) continue; if (strchr("dxslcbp", eptlist[i]->ftype)) continue; if (eptlist[i]->ftype == 'i') { if (eptlist[i] == svept) continue; /* don't copy pkginfo file */ (void) snprintf(temp, sizeof (temp), "%s/install/%s", pkgloc, eptlist[i]->path); path = temp; } else path = srcpath(pkgloc, eptlist[i]->path, part, nparts); if (sflag) { if (slinkf(eptlist[i]->ainfo.local, path)) quit(1); } else if (copyf(eptlist[i]->ainfo.local, path, eptlist[i]->cinfo.modtime)) { quit(1); } /* * If the package file attributes can be sync'd up with * the pkgmap, we fix the attributes here. */ if (*(eptlist[i]->ainfo.owner) != '$' && *(eptlist[i]->ainfo.group) != '$' && getuid() == 0) { /* Clear dangerous bits. */ eptlist[i]->ainfo.mode= (eptlist[i]->ainfo.mode & S_IAMB); /* * Make sure it can be read by the world and written * by root. */ eptlist[i]->ainfo.mode |= 0644; if (!strchr("in", eptlist[i]->ftype)) { /* Set the safe attributes. */ averify(1, &(eptlist[i]->ftype), path, &(eptlist[i]->ainfo)); } } (void) fprintf(stderr, "%s/n", path); }}
开发者ID:belenix,项目名称:belenixold,代码行数:83,
示例16: netfilter_inject_linuxstatic intnetfilter_inject_linux(pcap_t *handle, const void *buf, size_t size){ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "inject not supported on netfilter devices"); return (-1);}
开发者ID:7forz,项目名称:scutclient,代码行数:6,
示例17: strchrstruct iprange *set_range (char *word, char *value, struct iprange *in){ char *c, *d = NULL, *e = NULL; struct iprange *ipr, *p; struct hostent *hp; int count = 0; c = strchr (value, '-'); if (c) { d = c + 1; *c = 0; while ((c >= value) && (*c < 33)) *(c--) = 0; while (*d && (*d < 33)) d++; } if (!strlen (value) || (c && !strlen (d))) { snprintf (filerr, sizeof (filerr), "format is '%s <host or ip> - <host or ip>'/n", word); return NULL; } ipr = (struct iprange *) malloc (sizeof (struct iprange)); ipr->next = NULL; hp = gethostbyname (value); if (!hp) { snprintf (filerr, sizeof (filerr), "Unknown host %s/n", value); free (ipr); return NULL; } bcopy (hp->h_addr, &ipr->start, sizeof (unsigned int)); if (c) { char ip_hi[16]; e = d; while(*e != '/0') { if (*e++ == '.') count++; } if (count < 3) { strcpy(ip_hi, value); for (e = ip_hi + sizeof(ip_hi); e >= ip_hi; e--) { if (*e == '.') count--; if (count < 0) { e++; break; } } /* Copy the last field + null terminator */ if (ip_hi + sizeof(ip_hi)-e > strlen(d)) { strcpy(e, d); d = ip_hi; } } hp = gethostbyname (d); if (!hp) { snprintf (filerr, sizeof (filerr), "Unknown host %s/n", d); free (ipr); return NULL; } bcopy (hp->h_addr, &ipr->end, sizeof (unsigned int)); } else ipr->end = ipr->start; if (ntohl (ipr->start) > ntohl (ipr->end)) { snprintf (filerr, sizeof (filerr), "start is greater than end!/n"); free (ipr); return NULL; } if (word[0] == 'n') ipr->sense = SENSE_DENY; else ipr->sense = SENSE_ALLOW; p = in; if (p) { while (p->next) p = p->next; p->next = ipr; return in; } else return ipr;}
开发者ID:Ansud,项目名称:xxl2tpd,代码行数:88,
示例18: nflog_read_linuxstatic intnflog_read_linux(pcap_t *handle, int max_packets, pcap_handler callback, u_char *user){ const unsigned char *buf; int count = 0; int len; /* ignore interrupt system call error */ do { len = recv(handle->fd, handle->buffer, handle->bufsize, 0); if (handle->break_loop) { handle->break_loop = 0; return -2; } } while ((len == -1) && (errno == EINTR)); if (len < 0) { snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Can't receive packet %d:%s", errno, pcap_strerror(errno)); return -1; } buf = handle->buffer; while (len >= NLMSG_SPACE(0)) { const struct nlmsghdr *nlh = (const struct nlmsghdr *) buf; u_int32_t msg_len; if (nlh->nlmsg_len < sizeof(struct nlmsghdr) || len < nlh->nlmsg_len) { snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Message truncated: (got: %d) (nlmsg_len: %u)", len, nlh->nlmsg_len); return -1; } if (NFNL_SUBSYS_ID(nlh->nlmsg_type) == NFNL_SUBSYS_ULOG && NFNL_MSG_TYPE(nlh->nlmsg_type) == NFULNL_MSG_PACKET) { const unsigned char *payload = NULL; struct pcap_pkthdr pkth; if (handle->linktype != DLT_NFLOG) { const struct nfattr *payload_attr = NULL; if (nlh->nlmsg_len < HDR_LENGTH) { snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Malformed message: (nlmsg_len: %u)", nlh->nlmsg_len); return -1; } if (nlh->nlmsg_len > HDR_LENGTH) { struct nfattr *attr = NFM_NFA(NLMSG_DATA(nlh)); int attr_len = nlh->nlmsg_len - NLMSG_ALIGN(HDR_LENGTH); while (NFA_OK(attr, attr_len)) { switch (NFA_TYPE(attr)) { case NFULA_PAYLOAD: payload_attr = attr; break; } attr = NFA_NEXT(attr, attr_len); } } if (payload_attr) { payload = NFA_DATA(payload_attr); pkth.len = pkth.caplen = NFA_PAYLOAD(payload_attr); } } else { payload = NLMSG_DATA(nlh); pkth.caplen = pkth.len = nlh->nlmsg_len-NLMSG_ALIGN(sizeof(struct nlmsghdr)); } if (payload) { /* pkth.caplen = min (payload_len, handle->snapshot); */ gettimeofday(&pkth.ts, NULL); if (handle->fcode.bf_insns == NULL || bpf_filter(handle->fcode.bf_insns, payload, pkth.len, pkth.caplen)) { handle->md.packets_read++; callback(user, &pkth, payload); count++; } } } msg_len = NLMSG_ALIGN(nlh->nlmsg_len); if (msg_len > len) msg_len = len; len -= msg_len; buf += msg_len; } return count;}
开发者ID:7forz,项目名称:scutclient,代码行数:92,
示例19: get_ext_md_post_fixvoid get_ext_md_post_fix(int md_id, char buf[], char buf_ex[]){ // name format: modem_X_YYY_Z_Ex.img int X, Ex; char YYY[8];#if defined(DFO_FEATURE_EN) unsigned int feature_val = 0;#endif if (md_id < MD_SYS5) { printk("[EEMCS]wrong MD ID to get postfix %d/n", md_id); return; } // X X = md_id + 1;#if defined(DFO_FEATURE_EN) // DFO start ------------------- // YYY YYY[0] = '/0'; switch(md_id) { case MD_SYS5: feature_val = ext_md_support[MD_SYS5-MD_EXT1]; break; default: printk("[EEMCS]request MD ID %d not supported/n", md_id); break; } switch(feature_val) { case modem_lwg: snprintf(YYY, 8, "_lwg_n"); break; case modem_ltg: snprintf(YYY, 8, "_ltg_n"); break; default: printk("[EEMCS]request MD type %d not supported/n", feature_val); break; } // DFO end ---------------------#else // Static start ------------------- // YYY snprintf(YYY, 8, "_lwg_n"); // Static end ---------------------#endif // [_Ex] Get chip version#if 0 if(get_chip_version() == CHIP_SW_VER_01) Ex = 1; else if(get_chip_version() == CHIP_SW_VER_02) Ex = 2;#else Ex = 1;#endif // Gen post fix if(buf) { snprintf(buf, 12, "%d%s", X, YYY); printk("[EEMCS]MD%d image postfix=%s/n", md_id, buf); } if(buf_ex) { snprintf(buf_ex, 12, "%d%s_E%d", X, YYY, Ex); printk("[EEMCS]MD%d image postfix=%s/n", md_id, buf_ex); }}
开发者ID:andreya108,项目名称:sprout_cm11_mt6589_kernel,代码行数:69,
示例20: main//.........这里部分代码省略......... if (width != NULL) card('W', width); /* * XXX * Our use of `Z' here is incompatible with LPRng's * use. We assume that the only use of our existing * `Z' card is as shown for `p' format (pr) files. */ if (format == 'p') { char *s; if (locale) card('Z', locale); else if ((s = setlocale(LC_TIME, "")) != NULL) card('Z', s); } /* * Read the files and spool them. */ if (argc == 0) copy(pp, 0, " "); else while (argc--) { if (argv[0][0] == '-' && argv[0][1] == '/0') { /* use stdin */ copy(pp, 0, " "); argv++; continue; } if ((f = test(arg = *argv++)) < 0) continue; /* file unreasonable */ if (sflag && (cp = linked(arg)) != NULL) { (void)snprintf(buf, sizeof(buf), "%ju %ju", (uintmax_t)statb.st_dev, (uintmax_t)statb.st_ino); card('S', buf); if (format == 'p') card('T', title ? title : arg); for (i = 0; i < ncopies; i++) card(format, &dfname[inchar-2]); card('U', &dfname[inchar-2]); if (f) card('U', cp); card('N', arg); dfname[inchar]++; nact++; continue; } if (sflag) printf("%s: %s: not linked, copying instead/n", progname, arg); if (f) { /* * The user wants the file removed after it is copied * to the spool area, so see if the file can be moved * instead of copy/unlink'ed. This is much faster and * uses less spool space than copying the file. This * can be very significant when running services like * samba, pcnfs, CAP, et al. */ PRIV_START didlink = 0; /* * There are several things to check to avoid any * security issues. Some of these are redundant
开发者ID:2trill2spill,项目名称:freebsd,代码行数:67,
示例21: dm5_divestatic int dm5_dive(void *param, int columns, char **data, char **column){ UNUSED(columns); UNUSED(column); int i; int tempformat = 0; int interval, retval = 0, block_size; struct parser_state *state = (struct parser_state *)param; sqlite3 *handle = state->sql_handle; unsigned const char *sampleBlob; char *err = NULL; char get_events_template[] = "select * from Mark where DiveId = %d"; char get_tags_template[] = "select Text from DiveTag where DiveId = %d"; char get_cylinders_template[] = "select * from DiveMixture where DiveId = %d"; char get_gaschange_template[] = "select GasChangeTime,Oxygen,Helium from DiveGasChange join DiveMixture on DiveGasChange.DiveMixtureId=DiveMixture.DiveMixtureId where DiveId = %d"; char get_events[512]; dive_start(state); state->cur_dive->number = atoi(data[0]); state->cur_dive->when = (time_t)(atol(data[1])); if (data[2]) utf8_string(data[2], &state->cur_dive->notes); if (data[3]) state->cur_dive->duration.seconds = atoi(data[3]); if (data[15]) state->cur_dive->dc.duration.seconds = atoi(data[15]); /* * TODO: the deviceid hash should be calculated here. */ settings_start(state); dc_settings_start(state); if (data[4]) { utf8_string(data[4], &state->cur_settings.dc.serial_nr); state->cur_settings.dc.deviceid = atoi(data[4]); } if (data[5]) utf8_string(data[5], &state->cur_settings.dc.model); dc_settings_end(state); settings_end(state); if (data[6]) state->cur_dive->dc.maxdepth.mm = lrint(strtod_flags(data[6], NULL, 0) * 1000); if (data[8]) state->cur_dive->dc.airtemp.mkelvin = C_to_mkelvin(atoi(data[8])); if (data[9]) state->cur_dive->dc.watertemp.mkelvin = C_to_mkelvin(atoi(data[9])); if (data[4]) { state->cur_dive->dc.deviceid = atoi(data[4]); } if (data[5]) utf8_string(data[5], &state->cur_dive->dc.model); snprintf(get_events, sizeof(get_events) - 1, get_cylinders_template, state->cur_dive->number); retval = sqlite3_exec(handle, get_events, &dm5_cylinders, state, &err); if (retval != SQLITE_OK) { fprintf(stderr, "%s", "Database query dm5_cylinders failed./n"); return 1; } if (data[14]) state->cur_dive->dc.surface_pressure.mbar = (atoi(data[14]) / 100); interval = data[16] ? atoi(data[16]) : 0; /* * sampleBlob[0] version number, indicates the size of one sample * * Following ones describe single sample, bugs in interpretation of the binary blob are likely: * * sampleBlob[3] depth * sampleBlob[7-9] pressure * sampleBlob[11] temperature - either full Celsius or float, might be different field for some version of DM */ sampleBlob = (unsigned const char *)data[24]; if (sampleBlob) { switch (sampleBlob[0]) { case 1: // Log is converted from DM4 to DM5 block_size = 16; break; case 2: block_size = 19; break; case 3: block_size = 23; break; case 4: // Temperature is stored in float tempformat = 1; block_size = 26; break; case 5: // Temperature is stored in float//.........这里部分代码省略.........
开发者ID:dirkhh,项目名称:subsurface,代码行数:101,
示例22: recv_fdstatic int recv_fd(int c){ int fd; uint8_t msgbuf[CMSG_SPACE(sizeof(fd))]; struct msghdr msg = { .msg_control = msgbuf, .msg_controllen = sizeof(msgbuf), }; struct cmsghdr *cmsg; struct iovec iov; uint8_t req[1]; ssize_t len; cmsg = CMSG_FIRSTHDR(&msg); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SCM_RIGHTS; cmsg->cmsg_len = CMSG_LEN(sizeof(fd)); msg.msg_controllen = cmsg->cmsg_len; iov.iov_base = req; iov.iov_len = sizeof(req); msg.msg_iov = &iov; msg.msg_iovlen = 1; len = recvmsg(c, &msg, 0); if (len > 0) { memcpy(&fd, CMSG_DATA(cmsg), sizeof(fd)); return fd; } return len;}static int net_bridge_run_helper(const char *helper, const char *bridge, Error **errp){ sigset_t oldmask, mask; int pid, status; char *args[5]; char **parg; int sv[2]; sigemptyset(&mask); sigaddset(&mask, SIGCHLD); sigprocmask(SIG_BLOCK, &mask, &oldmask); if (socketpair(PF_UNIX, SOCK_STREAM, 0, sv) == -1) { error_setg_errno(errp, errno, "socketpair() failed"); return -1; } /* try to launch bridge helper */ pid = fork(); if (pid < 0) { error_setg_errno(errp, errno, "Can't fork bridge helper"); return -1; } if (pid == 0) { int open_max = sysconf(_SC_OPEN_MAX), i; char fd_buf[6+10]; char br_buf[6+IFNAMSIZ] = {0}; char helper_cmd[PATH_MAX + sizeof(fd_buf) + sizeof(br_buf) + 15]; for (i = 3; i < open_max; i++) { if (i != sv[1]) { close(i); } } snprintf(fd_buf, sizeof(fd_buf), "%s%d", "--fd=", sv[1]); if (strrchr(helper, ' ') || strrchr(helper, '/t')) { /* assume helper is a command */ if (strstr(helper, "--br=") == NULL) { snprintf(br_buf, sizeof(br_buf), "%s%s", "--br=", bridge); } snprintf(helper_cmd, sizeof(helper_cmd), "%s %s %s %s", helper, "--use-vnet", fd_buf, br_buf); parg = args; *parg++ = (char *)"sh"; *parg++ = (char *)"-c"; *parg++ = helper_cmd; *parg++ = NULL; execv("/bin/sh", args); } else { /* assume helper is just the executable path name */ snprintf(br_buf, sizeof(br_buf), "%s%s", "--br=", bridge); parg = args; *parg++ = (char *)helper; *parg++ = (char *)"--use-vnet"; *parg++ = fd_buf; *parg++ = br_buf; *parg++ = NULL;//.........这里部分代码省略.........
开发者ID:Whishay,项目名称:qemu-rsc-v7,代码行数:101,
示例23: CGPS9_00HandleEventsvoid CGPS9_00HandleEvents(t_CgpsEventInformation* pp_EventInfo){ uint8_t vl_CharactersWritten = 0; uint8_t vl_CheckSum = 0; char vl_NmeaBuffer[K_CGPS_MAX_NMEA_SIZE]; /*++ For adding newline at the end of PSTE messages */ char vl_PsteBuffer[K_CGPS_MAX_NMEA_SIZE]; /*-- For adding newline at the end of PSTE messages *//* + LMSQC19754 */ /*The transview tool expects the PSTE messages to have a timestamp that is in resolution of 4ms*/ uint32_t vl_timer = (uint32_t)GN_GPS_Get_OS_Time_ms() / 4;/* uint32_t vl_timer = GN_GPS_Get_OS_Time_ms(); *//* - LMSQC19754 */ vl_CharactersWritten = snprintf(vl_NmeaBuffer, K_CGPS_MAX_NMEA_SIZE, "$PSTE,"); switch( pp_EventInfo->v_EventType ) { case K_CGPS_RESPONSE_RETURNED: vl_CharactersWritten += MC_CGPS_ADD_PSTE_TYPE(vl_NmeaBuffer+vl_CharactersWritten, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten, 4); /* Pste type */ vl_CharactersWritten += MC_CGPS_ADD_OS_TIME (vl_NmeaBuffer+vl_CharactersWritten, vl_timer, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten); /*OS time*/ vl_CharactersWritten += MC_CGPS_ADD_SEPERATOR(vl_NmeaBuffer+vl_CharactersWritten, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten); /* , */ vl_CharactersWritten += MC_CGPS_ADD_LATLON(vl_NmeaBuffer+vl_CharactersWritten, pp_EventInfo->v_Latitude, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten);/*Latitude*/ vl_CharactersWritten += MC_CGPS_ADD_SEPERATOR(vl_NmeaBuffer+vl_CharactersWritten, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten); /* , */ vl_CharactersWritten += MC_CGPS_ADD_LATLON (vl_NmeaBuffer+vl_CharactersWritten, pp_EventInfo->v_Longitude, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten);/*Longitude*/ vl_CharactersWritten += MC_CGPS_ADD_SEPERATOR(vl_NmeaBuffer+vl_CharactersWritten, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten); /* , */ vl_CharactersWritten += MC_CGPS_ADD_ALT (vl_NmeaBuffer+vl_CharactersWritten, pp_EventInfo->v_Altitude, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten);/*Altitude*/ vl_CharactersWritten += MC_CGPS_ADD_EOM (vl_NmeaBuffer+vl_CharactersWritten, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten); /* * */ break; case K_CGPS_POSITIONING_SESSION_START: vl_CharactersWritten += MC_CGPS_ADD_PSTE_TYPE(vl_NmeaBuffer+vl_CharactersWritten, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten, 1); vl_CharactersWritten += MC_CGPS_ADD_OS_TIME (vl_NmeaBuffer+vl_CharactersWritten, vl_timer, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten); vl_CharactersWritten += MC_CGPS_ADD_EOM (vl_NmeaBuffer+vl_CharactersWritten, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten); break; case K_CGPS_POSITIONING_SESSION_END: vl_CharactersWritten += MC_CGPS_ADD_PSTE_TYPE(vl_NmeaBuffer+vl_CharactersWritten, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten, 2); vl_CharactersWritten += MC_CGPS_ADD_OS_TIME (vl_NmeaBuffer+vl_CharactersWritten, vl_timer, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten); vl_CharactersWritten += MC_CGPS_ADD_EOM (vl_NmeaBuffer+vl_CharactersWritten, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten); break;/* + LMSQC19754 */ case K_CGPS_ABORT_SESSION: vl_CharactersWritten += MC_CGPS_ADD_PSTE_TYPE(vl_NmeaBuffer+vl_CharactersWritten, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten, 3); vl_CharactersWritten += MC_CGPS_ADD_OS_TIME (vl_NmeaBuffer+vl_CharactersWritten, vl_timer, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten); vl_CharactersWritten += MC_CGPS_ADD_EOM (vl_NmeaBuffer+vl_CharactersWritten, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten); break;/* - LMSQC19754 */ default: break; } vl_CheckSum = CGPS9_01GenerateCheckSum(vl_NmeaBuffer, strlen((const char*)vl_NmeaBuffer)); vl_CharactersWritten += MC_CGPS_ADD_CS (vl_NmeaBuffer+vl_CharactersWritten, vl_CheckSum, K_CGPS_MAX_NMEA_SIZE-vl_CharactersWritten); MC_CGPS_TRACE(("%s", vl_NmeaBuffer)); sprintf(vl_PsteBuffer,"%s/r/n",vl_NmeaBuffer);/*-- For adding newline at the end of PSTE messages */ if( vg_CgpsTestall.p_Callback != NULL ) { t_cgps_NavData vl_NavDataToSend; vl_NavDataToSend.v_Type = K_CGPS_NMEA; vl_NavDataToSend.v_Length = vl_CharactersWritten; vl_NavDataToSend.p_NavData = vl_NmeaBuffer; /*++ For adding newline at the end of PSTE messages */ sprintf(vl_PsteBuffer,"%s/r/n",vl_NavDataToSend.p_NavData); vl_NavDataToSend.v_Length += 2; vl_NavDataToSend.p_NavData = vl_PsteBuffer; MC_CGPS_TRACE(("In CGPS9_00HandleEvents calling p_Callback")); (vg_CgpsTestall.p_Callback)( vl_NavDataToSend ); /*-- For adding newline at the end of PSTE messages */ } /* + DUR 19 Jan 2011 NMEA Logging */ CGPS4_11SendAcknowledge(vl_PsteBuffer); /* - DUR 19 Jan 2011 NMEA Logging */}
开发者ID:DevSwift,项目名称:android_hardware_ste-sony,代码行数:83,
示例24: net_init_tap_onestatic void net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer, const char *model, const char *name, const char *ifname, const char *script, const char *downscript, const char *vhostfdname, int vnet_hdr, int fd, Error **errp){ Error *err = NULL; TAPState *s = net_tap_fd_init(peer, model, name, fd, vnet_hdr); int vhostfd; tap_set_sndbuf(s->fd, tap, &err); if (err) { error_propagate(errp, err); return; } if (tap->has_fd || tap->has_fds) { snprintf(s->nc.info_str, sizeof(s->nc.info_str), "fd=%d", fd); } else if (tap->has_helper) { snprintf(s->nc.info_str, sizeof(s->nc.info_str), "helper=%s", tap->helper); } else { snprintf(s->nc.info_str, sizeof(s->nc.info_str), "ifname=%s,script=%s,downscript=%s", ifname, script, downscript); if (strcmp(downscript, "no") != 0) { snprintf(s->down_script, sizeof(s->down_script), "%s", downscript); snprintf(s->down_script_arg, sizeof(s->down_script_arg), "%s", ifname); } } if (tap->has_vhost ? tap->vhost : vhostfdname || (tap->has_vhostforce && tap->vhostforce)) { VhostNetOptions options; options.backend_type = VHOST_BACKEND_TYPE_KERNEL; options.net_backend = &s->nc; if (tap->has_poll_us) { options.busyloop_timeout = tap->poll_us; } else { options.busyloop_timeout = 0; } if (vhostfdname) { vhostfd = monitor_fd_param(cur_mon, vhostfdname, &err); if (vhostfd == -1) { error_propagate(errp, err); return; } } else { vhostfd = open("/dev/vhost-net", O_RDWR); if (vhostfd < 0) { error_setg_errno(errp, errno, "tap: open vhost char device failed"); return; } } options.opaque = (void *)(uintptr_t)vhostfd; s->vhost_net = vhost_net_init(&options); if (!s->vhost_net) { error_setg(errp, "vhost-net requested but could not be initialized"); return; } } else if (vhostfdname) { error_setg(errp, "vhostfd(s)= is not valid without vhost"); }}
开发者ID:Whishay,项目名称:qemu-rsc-v7,代码行数:71,
示例25: vzctl2_env_unregint vzctl2_env_unreg(struct vzctl_env_handle *h, int flags){ char buf[STR_SIZE]; char host[STR_SIZE]; int ret; const char *ve_root; const char *ve_private = h->env_param->fs->ve_private; /* preserve compatibility * VZ_REG_SKIP_HA_CLUSTER is alias for VZ_REG_SKIP_CLUSTER */ if (flags & VZ_REG_SKIP_HA_CLUSTER) flags |= VZ_REG_SKIP_CLUSTER; if (is_env_run(h)) return vzctl_err(VZCTL_E_ENV_RUN, 0, "Container is running, Stop Container before proceeding."); if (access(ve_private, F_OK) && errno == ENOENT) { ret = unregister_env_conf(h); if (ret) return ret; goto out; } if (vzctl2_env_layout_version(ve_private) < VZCTL_LAYOUT_4) return 0; ret = vzctl_check_owner_quiet(ve_private, buf, sizeof(buf), host, sizeof(host)); if (ret == VZCTL_E_ENV_MANAGE_DISABLED) { logger(0, 0, "Owner check failed on the server '%s':" " Container (%s) is registered for '%s'", buf, ve_private, host); ret = unregister_env_conf(h); if (ret) return ret; goto out; } else if (ret) return ret; ve_root = h->env_param->fs->ve_root; if (ve_root != NULL && vzctl2_env_is_mounted(h) == 1) { if (vzctl2_env_umount(h, 0)) return vzctl_err(VZCTL_E_FS_MOUNTED, 0, "Container is mounted, Unmount Container " "before proceeding."); } if (!(flags & VZ_UNREG_PRESERVE)) { /* Remove VEID from /ve_private/ve.conf */ vzctl2_env_set_param(h, "VEID", NULL); if (vzctl2_env_save(h)) return VZCTL_E_UNREGISTER; /* Remove VE_PRIVATE/.owner */ snprintf(buf, sizeof(buf), "%s/" VZCTL_VE_OWNER, ve_private); unlink(buf); } /* cleanup name */ if (h->env_param->name->name != NULL) { char name_path[PATH_MAX]; char veconf[PATH_MAX]; snprintf(veconf, sizeof(veconf), "%s/" VZCTL_VE_CONF, ve_private); snprintf(name_path, sizeof(name_path), ENV_NAME_DIR "%s", h->env_param->name->name); if (is_same_file(name_path, veconf)) unlink(name_path); } /* Remove /etc/vz/conf/VEID.conf */ unregister_env_conf(h); if (!(flags & VZ_REG_SKIP_CLUSTER) && is_shared_fs(ve_private) && shaman_del_resource(EID(h))) logger(0, 0,"Warning: Failed to unregister the Container on HA cluster");out: vzctl2_destroy_net_stat(h, 0); vzctl2_send_state_evt(EID(h), VZCTL_ENV_UNREGISTERED); logger(0, 0, "Container unregistered succesfully"); return 0;}
开发者ID:OpenVZ,项目名称:libvzctl,代码行数:86,
示例26: htsp_tcp_connect_addrsocket_thtsp_tcp_connect_addr(struct addrinfo* addr, char *errbuf, size_t errbufsize, int timeout){ socket_t fd; int r, err, val; socklen_t errlen = sizeof(int); fd = socket(addr->ai_family, addr->ai_socktype, addr->ai_protocol); if(fd == -1) { snprintf(errbuf, errbufsize, "Unable to create socket: %s", strerror(WSAGetLastError())); return -1; } /** * Switch to nonblocking */ val = 1; ioctlsocket(fd, FIONBIO, &val); r = connect(fd, addr->ai_addr, addr->ai_addrlen); if(r == -1) { if(WSAGetLastError() == EINPROGRESS || WSAGetLastError() == EAGAIN) { fd_set fd_write, fd_except; struct timeval tv; tv.tv_sec = timeout / 1000; tv.tv_usec = 1000 * (timeout % 1000); FD_ZERO(&fd_write); FD_ZERO(&fd_except); FD_SET(fd, &fd_write); FD_SET(fd, &fd_except); r = select((int)fd+1, NULL, &fd_write, &fd_except, &tv); if(r == 0) { /* Timeout */ snprintf(errbuf, errbufsize, "Connection attempt timed out"); closesocket(fd); return -1; } if(r == -1) { snprintf(errbuf, errbufsize, "select() error: %s", strerror(WSAGetLastError())); closesocket(fd); return -1; } getsockopt(fd, SOL_SOCKET, SO_ERROR, (void *)&err, &errlen); } else { err = WSAGetLastError(); } } else { err = 0; } if(err != 0) { snprintf(errbuf, errbufsize, "%s", strerror(err)); closesocket(fd); return -1; } val = 0; ioctlsocket(fd, FIONBIO, &val); val = 1; setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (const char*)&val, sizeof(val)); return fd;}
开发者ID:SHPURDYdBurt,项目名称:https-github.com-xbmc-atv2,代码行数:75,
示例27: vzctl2_get_free_envidint vzctl2_get_free_envid(unsigned *neweid, const char *dst, const char *unused){ int i; struct vzctl_conf_simple conf; char file[STR_SIZE]; char lckfile[STR_SIZE]; char dstlck[PATH_MAX]; struct stat st; int check_ve_private = 0; int check_ve_root = 0; int check_dst = 0; int fail_cnt = 0; int fd; ctid_t ctid = {}; vzctl_parse_conf_simple(ctid, GLOBAL_CFG, &conf); if (conf.ve_private_orig != NULL && strstr(conf.ve_private_orig, "$VEID")) check_ve_private = 1; if (conf.ve_root_orig != NULL && strstr(conf.ve_root_orig, "$VEID")) check_ve_root = 1; if (dst != NULL && strstr(dst, "$VEID")) { snprintf(dstlck, sizeof(dstlck), "%s.lck", dst); check_dst = 1; } *neweid = 0; for (i = START_ID; i < INT_MAX/2 && fail_cnt < GET_FREE_ENVID_FAIL_MAX; i++) { ctid_t ctid = {i, }; /* Check for VEID.conf */ vzctl2_get_env_conf_path(ctid, file, sizeof(file)); if (lstat(file, &st)) { if (errno != ENOENT) { logger(-1, errno, "Failed to stat %s", file); fail_cnt++; continue; } } else continue; /* lock envid */ snprintf(lckfile, sizeof(lckfile), "%s.lck", file); fd = open(lckfile, O_CREAT|O_EXCL, 0644); if (fd == -1) { if (errno != EEXIST) { fail_cnt++; logger(-1, errno, "Failed to create %s", lckfile); } continue; } close(fd); /* check if PATH(s) exist */ if ((check_ve_private && !is_dst_free(conf.ve_private_orig, ctid, &fail_cnt)) || (check_ve_root && !is_dst_free(conf.ve_root_orig, ctid, &fail_cnt)) || (check_dst && (!is_dst_free(dst, ctid, &fail_cnt) || !is_dst_free(dstlck, ctid, &fail_cnt)))) { /* unlock envid */ unlink(lckfile); continue; } *neweid = i; break; } vzctl_free_conf_simple(&conf); if (*neweid == 0) return vzctl_err(-1, 0, "Failed to get unused Countainer id"); return 0;}
开发者ID:OpenVZ,项目名称:libvzctl,代码行数:72,
示例28: main//.........这里部分代码省略......... } param[0] = '/0'; while (value = fpkgparam(fp, param)) { if (getenv(param) == NULL) putparam(param, value); free((void *)value); param[0] = '/0'; } (void) fclose(fp); /* add command line variables */ while (*cmdparam && (value = strchr(*cmdparam, '=')) != NULL) { *value = NULL; /* terminate the parameter */ value++; /* value is now the value (not '=') */ putparam(*cmdparam++, value); /* store it in environ */ } /* make sure parameters are valid */ (void) time(&clock); if (pt = getenv("PKG")) { if (pkgnmchk(pt, NULL, 0) || strchr(pt, '.')) { progerr(gettext(ERR_PKGABRV), pt); quit(1); } if (pkginst == NULL) pkginst = pt; } else { progerr(gettext(ERR_NOPARAM), "PKG", svept->path); quit(1); } /* * verify consistency between PKG parameter and pkginst */ (void) snprintf(param, sizeof (param), "%s.*", pt); if (pkgnmchk(pkginst, param, 0)) { progerr(gettext(ERR_PKGMTCH), pt, pkginst); quit(1); } /* * ********************************************************************* * this feature is removed starting with Solaris 10 - there is no built * in list of packages that should be run "the old way" * ********************************************************************* */#ifdef ALLOW_EXCEPTION_PKG_LIST /* Until 2.9, set it from the execption list */ if (exception_pkg(pkginst, LINK)) set_nonABI_symlinks();#endif if ((pkgname = getenv("NAME")) == NULL) { progerr(gettext(ERR_NOPARAM), "NAME", svept->path); quit(1); } if (ckparam("NAME", pkgname)) quit(1); if ((pkgvers = getenv("VERSION")) == NULL) { /* XXX - I18n */ /* LINTED do not use cftime(); use strftime instead */ (void) cftime(buf, "/045m//045d//045Y", &clock); (void) snprintf(temp, sizeof (temp), gettext("Dev Release %s"), buf); putparam("VERSION", temp); pkgvers = getenv("VERSION");
开发者ID:belenix,项目名称:belenixold,代码行数:67,
示例29: rtmp_read_wapi_parms_from_file//.........这里部分代码省略......... { pAd->CommonCfg.wapi_usk_rekey_threshold = simple_strtol(tmpbuf, 0, 10); DBGPRINT(RT_DEBUG_TRACE, ("WapiUskRekeyThreshold=%d/n", pAd->CommonCfg.wapi_usk_rekey_threshold)); } // WapiMskRekeyMethod if (RTMPGetKeyParameter("WapiMskRekeyMethod", tmpbuf, 32, buffer, TRUE)) { if ((strcmp(tmpbuf, "TIME") == 0) || (strcmp(tmpbuf, "time") == 0)) pAd->CommonCfg.wapi_msk_rekey_method = REKEY_METHOD_TIME; else if ((strcmp(tmpbuf, "PKT") == 0) || (strcmp(tmpbuf, "pkt") == 0)) pAd->CommonCfg.wapi_msk_rekey_method = REKEY_METHOD_PKT; else pAd->CommonCfg.wapi_msk_rekey_method = REKEY_METHOD_DISABLE; DBGPRINT(RT_DEBUG_TRACE, ("WapiMskRekeyMethod=%d/n", pAd->CommonCfg.wapi_msk_rekey_method)); } // WapiMskRekeyThreshold if (RTMPGetKeyParameter("WapiMskRekeyThreshold", tmpbuf, 32, buffer, TRUE)) { pAd->CommonCfg.wapi_msk_rekey_threshold = simple_strtol(tmpbuf, 0, 10); DBGPRINT(RT_DEBUG_TRACE, ("WapiMskRekeyThreshold=%d/n", pAd->CommonCfg.wapi_msk_rekey_threshold)); } #ifdef CONFIG_AP_SUPPORT IF_DEV_CONFIG_OPMODE_ON_AP(pAd) { STRING tok_str[16]; // WapiPskX for (apidx = 0; apidx < pAd->ApCfg.BssidNum; apidx++) { snprintf(tok_str, sizeof(tok_str), "WapiPsk%d", apidx + 1); NdisZeroMemory(pAd->ApCfg.MBSSID[apidx].WAPIPassPhrase, 64); pAd->ApCfg.MBSSID[apidx].WAPIPassPhraseLen = 0; if(RTMPGetKeyParameter(tok_str, tmpbuf, 65, buffer, FALSE)) { if (strlen(tmpbuf) >= 8 && strlen(tmpbuf) <= 64) { NdisMoveMemory(pAd->ApCfg.MBSSID[apidx].WAPIPassPhrase, tmpbuf, strlen(tmpbuf)); pAd->ApCfg.MBSSID[apidx].WAPIPassPhraseLen = strlen(tmpbuf); DBGPRINT(RT_DEBUG_TRACE, ("IF(ra%d) WapiPsk=(%s), len=%d/n", apidx, tmpbuf, strlen(tmpbuf))); } else { if (pAd->ApCfg.MBSSID[apidx].AuthMode == Ndis802_11AuthModeWAIPSK) { pAd->ApCfg.MBSSID[apidx].AuthMode = Ndis802_11AuthModeOpen; pAd->ApCfg.MBSSID[apidx].WepStatus = Ndis802_11EncryptionDisabled; } DBGPRINT(RT_DEBUG_ERROR, ("IF(ra%d) The length of WAPI PSKPassPhrase is invalid(len=%d). /n", apidx, strlen(tmpbuf))); } } } }#endif // CONFIG_AP_SUPPORT // #ifdef CONFIG_STA_SUPPORT IF_DEV_CONFIG_OPMODE_ON_STA(pAd) { // WapiPsk if (RTMPGetKeyParameter("WapiPsk", tmpbuf, 512, buffer, FALSE)) {
开发者ID:philenotfound,项目名称:belkin-wemo-linux-2.6.21.x,代码行数:67,
示例30: ldap_back_monitor_db_open//.........这里部分代码省略......... ptr = lutil_strcopy( ptr, "(&" ); ptr = lutil_strncopy( ptr, li->li_monitor_info.lmi_more_filter.bv_val, li->li_monitor_info.lmi_more_filter.bv_len ); ptr = lutil_strcopy( ptr, "(monitoredInfo=" ); ptr = lutil_strcopy( ptr, be->bd_info->bi_type ); ptr = lutil_strcopy( ptr, ")(!(monitorOverlay=" ); ptr = lutil_strcopy( ptr, be->bd_info->bi_type ); ptr = lutil_strcopy( ptr, "))(namingContexts:distinguishedNameMatch:=" ); ptr = lutil_strncopy( ptr, suffix.bv_val, suffix.bv_len ); ptr = lutil_strcopy( ptr, "))" ); ptr[ 0 ] = '/0'; assert( ptr == &filter->bv_val[ filter->bv_len ] ); if ( suffix.bv_val != be->be_nsuffix[ 0 ].bv_val ) { ch_free( suffix.bv_val ); } now = slap_get_time(); timestamp.bv_val = timebuf; timestamp.bv_len = sizeof( timebuf ); slap_timestamp( &now, ×tamp ); /* caller (e.g. an overlay based on back-ldap) may want to use * a different RDN... */ if ( BER_BVISNULL( &li->li_monitor_info.lmi_rdn ) ) { ber_str2bv( "cn=Connections", 0, 1, &li->li_monitor_info.lmi_rdn ); } ptr = ber_bvchr( &li->li_monitor_info.lmi_rdn, '=' ); assert( ptr != NULL ); ptr[ 0 ] = '/0'; ptr++; snprintf( buf, sizeof( buf ), "dn: %s=%s/n" "objectClass: monitorContainer/n" "%s: %s/n" "creatorsName: %s/n" "createTimestamp: %s/n" "modifiersName: %s/n" "modifyTimestamp: %s/n", li->li_monitor_info.lmi_rdn.bv_val, ptr, li->li_monitor_info.lmi_rdn.bv_val, ptr, BER_BVISNULL( &be->be_rootdn ) ? SLAPD_ANONYMOUS : be->be_rootdn.bv_val, timestamp.bv_val, BER_BVISNULL( &be->be_rootdn ) ? SLAPD_ANONYMOUS : be->be_rootdn.bv_val, timestamp.bv_val ); e = str2entry( buf ); if ( e == NULL ) { rc = -1; goto cleanup; } ptr[ -1 ] = '='; /* add labeledURI and special, modifiable URI value */ if ( li->li_uri != NULL ) { struct berval bv; LDAPURLDesc *ludlist = NULL; int rc; rc = ldap_url_parselist_ext( &ludlist, li->li_uri, NULL, LDAP_PVT_URL_PARSE_NOEMPTY_HOST
开发者ID:1ack,项目名称:Impala,代码行数:67,
注:本文中的snprintf函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ snprintf_P函数代码示例 C++ snooze函数代码示例 |