您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ sstrerror函数代码示例

51自学网 2021-06-03 08:20:31
  C++
这篇教程C++ sstrerror函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中sstrerror函数的典型用法代码示例。如果您正苦于以下问题:C++ sstrerror函数的具体用法?C++ sstrerror怎么用?C++ sstrerror使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了sstrerror函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: read_types_list

int read_types_list (const char *file){  FILE *fh;  if (file == NULL)    return (-1);  fh = fopen (file, "r");  if (fh == NULL)  {    char errbuf[1024];    fprintf (stderr, "Failed to open types database `%s': %s./n",	file, sstrerror (errno, errbuf, sizeof (errbuf)));    ERROR ("Failed to open types database `%s': %s",	file, sstrerror (errno, errbuf, sizeof (errbuf)));    return (-1);  }  parse_file (fh);  fclose (fh);  fh = NULL;  DEBUG ("Done parsing `%s'", file);  return (0);} /* int read_types_list */
开发者ID:BrianB2,项目名称:collectd,代码行数:27,


示例2: amqp_get_rpc_reply

static char *camqp_strerror (camqp_config_t *conf, /* {{{ */        char *buffer, size_t buffer_size){    amqp_rpc_reply_t r;    r = amqp_get_rpc_reply (conf->connection);    switch (r.reply_type)    {        case AMQP_RESPONSE_NORMAL:            sstrncpy (buffer, "Success", sizeof (buffer));            break;        case AMQP_RESPONSE_NONE:            sstrncpy (buffer, "Missing RPC reply type", sizeof (buffer));            break;        case AMQP_RESPONSE_LIBRARY_EXCEPTION:#if HAVE_AMQP_RPC_REPLY_T_LIBRARY_ERRNO            if (r.library_errno)                return (sstrerror (r.library_errno, buffer, buffer_size));#else            if (r.library_error)                return (sstrerror (r.library_error, buffer, buffer_size));#endif            else                sstrncpy (buffer, "End of stream", sizeof (buffer));            break;        case AMQP_RESPONSE_SERVER_EXCEPTION:            if (r.reply.id == AMQP_CONNECTION_CLOSE_METHOD)            {                amqp_connection_close_t *m = r.reply.decoded;                char *tmp = camqp_bytes_cstring (&m->reply_text);                ssnprintf (buffer, buffer_size, "Server connection error %d: %s",                        m->reply_code, tmp);                sfree (tmp);            }            else if (r.reply.id == AMQP_CHANNEL_CLOSE_METHOD)            {                amqp_channel_close_t *m = r.reply.decoded;                char *tmp = camqp_bytes_cstring (&m->reply_text);                ssnprintf (buffer, buffer_size, "Server channel error %d: %s",                        m->reply_code, tmp);                sfree (tmp);            }            else            {                ssnprintf (buffer, buffer_size, "Server error method %#"PRIx32,                        r.reply.id);            }            break;        default:            ssnprintf (buffer, buffer_size, "Unknown reply type %i",                    (int) r.reply_type);    }    return (buffer);} /* }}} char *camqp_strerror */
开发者ID:hume-github,项目名称:collectd,代码行数:59,


示例3: dpdk_event_keep_alive_shm_open

static int dpdk_event_keep_alive_shm_open(void) {  dpdk_events_ctx_t *ec = DPDK_EVENTS_CTX_GET(g_hc);  char *shm_name;  if (strlen(ec->config.keep_alive.shm_name)) {    shm_name = ec->config.keep_alive.shm_name;  } else {    shm_name = RTE_KEEPALIVE_SHM_NAME;    WARNING(DPDK_EVENTS_PLUGIN ": Keep alive shared memory identifier is not "                               "specified, using default one: %s",            shm_name);  }  char errbuf[ERR_BUF_SIZE];  int fd = shm_open(shm_name, O_RDONLY, 0);  if (fd < 0) {    ERROR(DPDK_EVENTS_PLUGIN ": Failed to open %s as SHM:%s. Is DPDK KA "                             "primary application running?",          shm_name, sstrerror(errno, errbuf, sizeof(errbuf)));    return errno;  }  if (ec->config.keep_alive.fd != -1) {    struct stat stat_old, stat_new;    if (fstat(ec->config.keep_alive.fd, &stat_old) || fstat(fd, &stat_new)) {      ERROR(DPDK_EVENTS_PLUGIN ": failed to get information about a file");      close(fd);      return -1;    }    /* Check if inode number has changed. If yes, then create a new mapping */    if (stat_old.st_ino == stat_new.st_ino) {      close(fd);      return 0;    }    if (munmap(ec->config.keep_alive.shm, sizeof(dpdk_keepalive_shm_t)) != 0) {      ERROR(DPDK_EVENTS_PLUGIN ": munmap KA monitor failed");      close(fd);      return -1;    }    close(ec->config.keep_alive.fd);    ec->config.keep_alive.fd = -1;  }  ec->config.keep_alive.shm = (dpdk_keepalive_shm_t *)mmap(      0, sizeof(*(ec->config.keep_alive.shm)), PROT_READ, MAP_SHARED, fd, 0);  if (ec->config.keep_alive.shm == MAP_FAILED) {    ERROR(DPDK_EVENTS_PLUGIN ": Failed to mmap KA SHM:%s",          sstrerror(errno, errbuf, sizeof(errbuf)));    close(fd);    return errno;  }  ec->config.keep_alive.fd = fd;  return 0;}
开发者ID:Feandil,项目名称:collectd,代码行数:59,


示例4: net_open

/* * Open a TCP connection to the UPS network server * Returns -1 on error * Returns socket file descriptor otherwise */static int net_open (char const *node, char const *service){	int              sd;	int              status;	struct addrinfo *ai_return;	struct addrinfo *ai_list;	/* TODO: Change this to `AF_UNSPEC' if apcupsd can handle IPv6 */	struct addrinfo ai_hints = {		.ai_family = AF_INET,		.ai_socktype = SOCK_STREAM	};	status = getaddrinfo (node, service, &ai_hints, &ai_return);	if (status != 0)	{		char errbuf[1024];		INFO ("apcups plugin: getaddrinfo failed: %s",				(status == EAI_SYSTEM)				? sstrerror (errno, errbuf, sizeof (errbuf))				: gai_strerror (status));		return (-1);	}	/* Create socket */	sd = -1;	for (ai_list = ai_return; ai_list != NULL; ai_list = ai_list->ai_next)	{		sd = socket (ai_list->ai_family, ai_list->ai_socktype, ai_list->ai_protocol);		if (sd >= 0)			break;	}	/* `ai_list' still holds the current description of the socket.. */	if (sd < 0)	{		DEBUG ("apcups plugin: Unable to open a socket");		freeaddrinfo (ai_return);		return (-1);	}	status = connect (sd, ai_list->ai_addr, ai_list->ai_addrlen);	freeaddrinfo (ai_return);	if (status != 0) /* `connect(2)' failed */	{		char errbuf[1024];		INFO ("apcups plugin: connect failed: %s",				sstrerror (errno, errbuf, sizeof (errbuf)));		close (sd);		return (-1);	}	DEBUG ("apcups plugin: Done opening a socket %i", sd);	return (sd);} /* int net_open */
开发者ID:strizhechenko,项目名称:collectd,代码行数:63,


示例5: zookeeper_connect

static int zookeeper_connect (void){	int sk = -1;	int status;	struct addrinfo *ai;	struct addrinfo *ai_list;	const char *host;	const char *port;	host = (zk_host != NULL) ? zk_host : ZOOKEEPER_DEF_HOST;	port = (zk_port != NULL) ? zk_port : ZOOKEEPER_DEF_PORT;	struct addrinfo ai_hints = {		.ai_family   = AF_UNSPEC,		.ai_socktype = SOCK_STREAM	};	status = getaddrinfo (host, port, &ai_hints, &ai_list);	if (status != 0)	{		char errbuf[1024];		INFO ("getaddrinfo failed: %s",			  (status == EAI_SYSTEM)			  ? sstrerror (errno, errbuf, sizeof (errbuf))			  : gai_strerror (status));		return (-1);	}	for (ai = ai_list; ai != NULL; ai = ai->ai_next)	{		sk = socket (ai->ai_family, SOCK_STREAM, 0);		if (sk < 0)		{			char errbuf[1024];			WARNING ("zookeeper: socket(2) failed: %s",					 sstrerror (errno, errbuf, sizeof(errbuf)));			continue;		}		status = (int) connect (sk, ai->ai_addr, ai->ai_addrlen);		if (status != 0)		{			char errbuf[1024];			close (sk);			sk = -1;			WARNING ("zookeeper: connect(2) failed: %s",					 sstrerror (errno, errbuf, sizeof(errbuf)));			continue;		}		/* connected */		break;	}	freeaddrinfo(ai_list);	return (sk);} /* int zookeeper_connect */
开发者ID:xinity,项目名称:collectdng,代码行数:56,


示例6: memcached_connect_inet

static int memcached_connect_inet (memcached_t *st){  struct addrinfo *ai_list;  int status;  int fd = -1;  struct addrinfo ai_hints = {    .ai_family = AF_UNSPEC,    .ai_flags = AI_ADDRCONFIG,    .ai_socktype = SOCK_STREAM  };  status = getaddrinfo (st->connhost, st->connport, &ai_hints, &ai_list);  if (status != 0)  {    char errbuf[1024];    ERROR ("memcached plugin: memcached_connect_inet: "        "getaddrinfo(%s,%s) failed: %s",        st->connhost, st->connport,        (status == EAI_SYSTEM)        ? sstrerror (errno, errbuf, sizeof (errbuf))        : gai_strerror (status));    return (-1);  }  for (struct addrinfo *ai_ptr = ai_list; ai_ptr != NULL; ai_ptr = ai_ptr->ai_next)  {    /* create our socket descriptor */    fd = socket (ai_ptr->ai_family, ai_ptr->ai_socktype, ai_ptr->ai_protocol);    if (fd < 0)    {      char errbuf[1024];      WARNING ("memcached plugin: memcached_connect_inet: "          "socket(2) failed: %s",          sstrerror (errno, errbuf, sizeof (errbuf)));      continue;    }    /* connect to the memcached daemon */    status = (int) connect (fd, ai_ptr->ai_addr, ai_ptr->ai_addrlen);    if (status != 0)    {      shutdown (fd, SHUT_RDWR);      close (fd);      fd = -1;      continue;    }    /* A socket could be opened and connecting succeeded. We're done. */    break;  }  freeaddrinfo (ai_list);  return (fd);} /* int memcached_connect_inet */
开发者ID:Whissi,项目名称:collectd,代码行数:55,


示例7: nagios_print

static int nagios_print(char const *buffer) /* {{{ */{  char const *file = NAGIOS_COMMAND_FILE;  int fd;  int status;  struct flock lock = {0};  if (nagios_command_file != NULL)    file = nagios_command_file;  fd = open(file, O_WRONLY | O_APPEND);  if (fd < 0) {    char errbuf[1024];    status = errno;    ERROR("notify_nagios plugin: Opening /"%s/" failed: %s", file,          sstrerror(status, errbuf, sizeof(errbuf)));    return status;  }  lock.l_type = F_WRLCK;  lock.l_whence = SEEK_END;  status = fcntl(fd, F_GETLK, &lock);  if (status != 0) {    char errbuf[1024];    status = errno;    ERROR("notify_nagios plugin: Failed to acquire write lock on /"%s/": %s",          file, sstrerror(status, errbuf, sizeof(errbuf)));    close(fd);    return status;  }  status = (int)lseek(fd, 0, SEEK_END);  if (status == -1) {    char errbuf[1024];    status = errno;    ERROR("notify_nagios plugin: Seeking to end of /"%s/" failed: %s", file,          sstrerror(status, errbuf, sizeof(errbuf)));    close(fd);    return status;  }  status = (int)swrite(fd, buffer, strlen(buffer));  if (status != 0) {    char errbuf[1024];    status = errno;    ERROR("notify_nagios plugin: Writing to /"%s/" failed: %s", file,          sstrerror(status, errbuf, sizeof(errbuf)));    close(fd);    return status;  }  close(fd);  return status;} /* }}} int nagios_print */
开发者ID:hasso,项目名称:collectd,代码行数:55,


示例8: pf_read

static int pf_read (void){	struct pf_status state;	int fd;	int status;	int i;	fd = open (pf_device, O_RDONLY);	if (fd < 0)	{		char errbuf[1024];		ERROR("pf plugin: Unable to open %s: %s",				pf_device,				sstrerror (errno, errbuf, sizeof (errbuf)));		return (-1);	}	memset (&state, 0, sizeof (state));	status = ioctl (fd, DIOCGETSTATUS, &state);	if (status != 0)	{		char errbuf[1024];		ERROR("pf plugin: ioctl(DIOCGETSTATUS) failed: %s",				sstrerror (errno, errbuf, sizeof (errbuf)));		close(fd);		return (-1);	}	close (fd);	fd = -1;	if (!state.running)	{		WARNING ("pf plugin: PF is not running.");		return (-1);	}	for (i = 0; i < PFRES_MAX; i++)		pf_submit ("pf_counters", pf_reasons[i], state.counters[i],				/* is gauge = */ 0);	for (i = 0; i < LCNT_MAX; i++)		pf_submit ("pf_limits", pf_lcounters[i], state.lcounters[i],				/* is gauge = */ 0);	for (i = 0; i < FCNT_MAX; i++)		pf_submit ("pf_state", pf_fcounters[i], state.fcounters[i],				/* is gauge = */ 0);	for (i = 0; i < SCNT_MAX; i++)		pf_submit ("pf_source", pf_scounters[i], state.scounters[i],				/* is gauge = */ 0);	pf_submit ("pf_states", "current", (uint32_t) state.states,			/* is gauge = */ 1);	return (0);} /* int pf_read */
开发者ID:QualityUnit,项目名称:collectd,代码行数:55,


示例9: zookeeper_query

static int zookeeper_query (char *buffer, size_t buffer_size){    int sk = -1;    int status;    size_t buffer_fill;    sk = zookeeper_connect();    if (sk < 0)    {        ERROR ("zookeeper: Could not connect to daemon");        return (-1);    }    status = (int) swrite (sk, "mntr/r/n", strlen("mntr/r/n"));    if (status != 0)    {        char errbuf[1024];        ERROR ("zookeeper: write(2) failed: %s",               sstrerror (errno, errbuf, sizeof (errbuf)));        close (sk);        return (-1);    }    memset (buffer, 0, buffer_size);    buffer_fill = 0;    while ((status = (int) recv (sk, buffer + buffer_fill,                                 buffer_size - buffer_fill, /* flags = */ 0)) != 0)    {        if (status < 0)        {            char errbuf[1024];            if ((errno == EAGAIN) || (errno == EINTR))                continue;            ERROR ("zookeeper: Error reading from socket: %s",                   sstrerror (errno, errbuf, sizeof (errbuf)));            close (sk);            return (-1);        }        buffer_fill += (size_t) status;    } /* while (recv) */    status = 0;    if (buffer_fill == 0)    {        WARNING ("zookeeper: No data returned by MNTR command.");        status = -1;    }    close(sk);    return (status);} /* int zookeeper_query */
开发者ID:michaelsalmon,项目名称:collectd,代码行数:53,


示例10: fhcount_read

static int fhcount_read(void) {  int numfields = 0;  int buffer_len = 60;  gauge_t used, unused, max;  int prc_used, prc_unused;  char *fields[3];  char buffer[buffer_len];  char errbuf[1024];  FILE *fp;  // Open file  fp = fopen("/proc/sys/fs/file-nr" , "r");  if (fp == NULL) {    ERROR("fhcount: fopen: %s", sstrerror(errno, errbuf, sizeof(errbuf)));    return(EXIT_FAILURE);  }  if (fgets(buffer, buffer_len, fp) == NULL) {    ERROR("fhcount: fgets: %s", sstrerror(errno, errbuf, sizeof(errbuf)));    return(EXIT_FAILURE);  }  fclose(fp);  // Tokenize string  numfields = strsplit(buffer, fields, STATIC_ARRAY_SIZE(fields));  if (numfields != 3) {    ERROR("fhcount: Line doesn't contain 3 fields");    return(EXIT_FAILURE);  }  // Define the values  strtogauge(fields[0], &used);  strtogauge(fields[1], &unused);  strtogauge(fields[2], &max);  prc_used = (gauge_t) used/max*100;  prc_unused = (gauge_t) unused/max*100;  // Submit values  if (values_absolute) {    fhcount_submit("file_handles", "used", (gauge_t) used);    fhcount_submit("file_handles", "unused", (gauge_t) unused);    fhcount_submit("file_handles", "max", (gauge_t) max);  }  if (values_percentage) {    fhcount_submit("percent", "used", (gauge_t) prc_used);    fhcount_submit("percent", "unused", (gauge_t) prc_unused);  }  return(0);}
开发者ID:EmFl,项目名称:collectd,代码行数:50,


示例11: sysfs_file_to_buffer

/* Reads a file which contains only a number (and optionally a trailing * newline) and parses that number. */static int sysfs_file_to_buffer(char const *dir, /* {{{ */		char const *power_supply,		char const *basename,		char *buffer, size_t buffer_size){	int status;	FILE *fp;	char filename[PATH_MAX];	ssnprintf (filename, sizeof (filename), "%s/%s/%s",			dir, power_supply, basename);	/* No file isn't the end of the world -- not every system will be	 * reporting the same set of statistics */	if (access (filename, R_OK) != 0)		return ENOENT;	fp = fopen (filename, "r");	if (fp == NULL)	{		status = errno;		if (status != ENOENT)		{			char errbuf[1024];			WARNING ("battery plugin: fopen (%s) failed: %s", filename,					sstrerror (status, errbuf, sizeof (errbuf)));		}		return status;	}	if (fgets (buffer, buffer_size, fp) == NULL)	{		status = errno;		if (status != ENODEV)		{			char errbuf[1024];			WARNING ("battery plugin: fgets (%s) failed: %s", filename,					sstrerror (status, errbuf, sizeof (errbuf)));		}		fclose (fp);		return status;	}	strstripnewline (buffer);	fclose (fp);	return 0;} /* }}} int sysfs_file_to_buffer */
开发者ID:mleinart,项目名称:collectd,代码行数:50,


示例12: setup_socket

static int setup_socket (const char *path) {    struct sockaddr_un sa;    int status;    unlink(path);    int sock_fd = socket(PF_UNIX, SOCK_STREAM, 0);    if (sock_fd < 0) {        char errbuf[1024];        ERROR ("aggregator plugin: socket failed: %s",               sstrerror (errno, errbuf, sizeof (errbuf)));        return (-1);    }    memset (&sa, '/0', sizeof (sa));    sa.sun_family = AF_UNIX;    sstrncpy (sa.sun_path, (path != NULL) ? path : DEFAULT_SOCK_FILE,              sizeof (sa.sun_path));    /* unlink (sa.sun_path); */    DEBUG ("aggregator plugin: socket path = %s", sa.sun_path);    status = bind (sock_fd, (struct sockaddr *) &sa, sizeof (sa));    if (status != 0)    {        char errbuf[1024];        sstrerror (errno, errbuf, sizeof (errbuf));        ERROR ("aggregator plugin: bind failed: %s", errbuf);        close (sock_fd);        sock_fd = -1;        return (-1);    }    chmod (sa.sun_path, sock_perms);    status = listen (sock_fd, 8);    if (status != 0)    {        char errbuf[1024];        ERROR ("aggregator plugin: listen failed: %s",               sstrerror (errno, errbuf, sizeof (errbuf)));        close (sock_fd);        sock_fd = -1;        return (-1);    }    return sock_fd;}
开发者ID:srlindsay,项目名称:collectd,代码行数:48,


示例13: wg_send_buffer

static int wg_send_buffer (struct wg_callback *cb){    ssize_t status = 0;    status = swrite (cb->sock_fd, cb->send_buf, strlen (cb->send_buf));    if (status < 0)    {        const char *protocol = cb->protocol ? cb->protocol : WG_DEFAULT_PROTOCOL;        if (cb->log_send_errors)        {            char errbuf[1024];            ERROR ("write_graphite plugin: send to %s:%s (%s) failed with status %zi (%s)",                    cb->node, cb->service, protocol,                    status, sstrerror (errno, errbuf, sizeof (errbuf)));        }        close (cb->sock_fd);        cb->sock_fd = -1;        return (-1);    }    return (0);}
开发者ID:AnatolyZimin,项目名称:collectd,代码行数:25,


示例14: tbl_config_append_array_i

static int tbl_config_append_array_i (char *name, int **var, size_t *len,		oconfig_item_t *ci){	int *tmp;	size_t i;	if (1 > ci->values_num) {		log_err ("/"%s/" expects at least one argument.", name);		return 1;	}	for (i = 0; i < ci->values_num; ++i) {		if (OCONFIG_TYPE_NUMBER != ci->values[i].type) {			log_err ("/"%s/" expects numerical arguments only.", name);			return 1;		}	}	*len += ci->values_num;	tmp = (int *)realloc (*var, *len * sizeof (**var));	if (NULL == tmp) {		char errbuf[1024];		log_err ("realloc failed: %s.",				sstrerror (errno, errbuf, sizeof (errbuf)));		return -1;	}	*var = tmp;	for (i = *len - ci->values_num; i < *len; ++i)		(*var)[i] = (int)ci->values[i].value.number;	return 0;} /* tbl_config_append_array_s */
开发者ID:BrianB2,项目名称:collectd,代码行数:34,


示例15: read_types_list

int read_types_list (const char *file){  FILE *fh;  if (file == NULL)    return (-1);  fh = fopen (file, "r");  if (fh == NULL)  {    char errbuf[1024];    ERROR ("open (%s) failed: %s", 	file, sstrerror (errno, errbuf, sizeof (errbuf)));    return (-1);  }  parse_file (fh);  fclose (fh);  fh = NULL;  DEBUG ("Done parsing `%s'", file);  return (0);} /* int read_types_list */
开发者ID:johnl,项目名称:collectd,代码行数:25,


示例16: csv_create_file

static int csv_create_file (const char *filename, const data_set_t *ds){	FILE *csv;	int i;	if (check_create_dir (filename))		return (-1);	csv = fopen (filename, "w");	if (csv == NULL)	{		char errbuf[1024];		ERROR ("csv plugin: fopen (%s) failed: %s",				filename,				sstrerror (errno, errbuf, sizeof (errbuf)));		return (-1);	}	fprintf (csv, "epoch");	for (i = 0; i < ds->ds_num; i++)		fprintf (csv, ",%s", ds->ds[i].name);	fprintf (csv, "/n");	fclose (csv);	return 0;} /* int csv_create_file */
开发者ID:nkazzaz,项目名称:collectd-freeswitch,代码行数:27,


示例17: create_sockets

static void *mc_receive_thread (void *arg) /* {{{ */{  socket_entry_t *mc_receive_socket_entries;  int status;  size_t i;  mc_receive_socket_entries = NULL;  status = create_sockets (&mc_receive_socket_entries, &mc_receive_sockets_num,      (mc_receive_group != NULL) ? mc_receive_group : MC_RECEIVE_GROUP_DEFAULT,      (mc_receive_port != NULL) ? mc_receive_port : MC_RECEIVE_PORT_DEFAULT,      /* listen = */ 1);  if (status != 0)  {    ERROR ("gmond plugin: create_sockets failed.");    return ((void *) -1);  }  mc_receive_sockets = (struct pollfd *) calloc (mc_receive_sockets_num,      sizeof (*mc_receive_sockets));  if (mc_receive_sockets == NULL)  {    ERROR ("gmond plugin: calloc failed.");    for (i = 0; i < mc_receive_sockets_num; i++)      close (mc_receive_socket_entries[i].fd);    free (mc_receive_socket_entries);    mc_receive_socket_entries = NULL;    mc_receive_sockets_num = 0;    return ((void *) -1);  }  for (i = 0; i < mc_receive_sockets_num; i++)  {    mc_receive_sockets[i].fd = mc_receive_socket_entries[i].fd;    mc_receive_sockets[i].events = POLLIN | POLLPRI;    mc_receive_sockets[i].revents = 0;  }  while (mc_receive_thread_loop != 0)  {    status = poll (mc_receive_sockets, mc_receive_sockets_num, -1);    if (status <= 0)    {      char errbuf[1024];      if (errno == EINTR)        continue;      ERROR ("gmond plugin: poll failed: %s",          sstrerror (errno, errbuf, sizeof (errbuf)));      break;    }    for (i = 0; i < mc_receive_sockets_num; i++)    {      if (mc_receive_sockets[i].revents != 0)        mc_handle_socket (mc_receive_sockets + i);    }  } /* while (mc_receive_thread_loop != 0) */  free (mc_receive_socket_entries);  return ((void *) 0);} /* }}} void *mc_receive_thread */
开发者ID:beorn-,项目名称:collectd,代码行数:60,


示例18: irq_read

static int irq_read (void){	FILE *fh;	char buffer[1024];	fh = fopen ("/proc/interrupts", "r");	if (fh == NULL)	{		char errbuf[1024];		ERROR ("irq plugin: fopen (/proc/interrupts): %s",				sstrerror (errno, errbuf, sizeof (errbuf)));		return (-1);	}	while (fgets (buffer, BUFSIZE, fh) != NULL)	{		char irq_name[64];		int irq_name_len;		derive_t irq_value;		char *endptr;		int i;		char *fields[64];		int fields_num;		fields_num = strsplit (buffer, fields, 64);		if (fields_num < 2)			continue;		errno = 0;    /* To distinguish success/failure after call */		irq_name_len = ssnprintf (irq_name, sizeof (irq_name), "%s", fields[0]);		endptr = &irq_name[irq_name_len-1];		if ((endptr == fields[0]) || (errno != 0) || (*endptr != ':'))			continue;		/* remove : */		*endptr = 0;		irq_value = 0;		for (i = 1; i < fields_num; i++)		{			/* Per-CPU value */			value_t v;			int status;			status = irq_parse_value (fields[i], &v);			if (status != 0)				break;			irq_value += v.derive;		} /* for (i) */		irq_submit (irq_name, irq_value);	}	fclose (fh);	return (0);} /* int irq_read */
开发者ID:emiddleton,项目名称:collectd,代码行数:60,


示例19: cdtime_to_iso8601

size_t cdtime_to_iso8601 (char *s, size_t max, cdtime_t t) /* {{{ */{  struct timespec t_spec;  struct tm t_tm;  size_t len;  CDTIME_T_TO_TIMESPEC (t, &t_spec);  NORMALIZE_TIMESPEC (t_spec);  if (localtime_r ((time_t *)&t_spec.tv_sec, &t_tm) == NULL) {    char errbuf[1024];    ERROR ("cdtime_to_iso8601: localtime_r failed: %s",        sstrerror (errno, errbuf, sizeof (errbuf)));    return (0);  }  len = strftime (s, max, "%Y-%m-%dT%H:%M:%S", &t_tm);  if (len == 0)    return 0;  if (max - len > 2) {    int n = snprintf (s + len, max - len, ".%09i", (int)t_spec.tv_nsec);    len += (n < max - len) ? n : max - len;  }  if (max - len > 3) {    int n = strftime (s + len, max - len, "%z", &t_tm);    len += (n < max - len) ? n : max - len;  }  s[max - 1] = '/0';  return len;} /* }}} size_t cdtime_to_iso8601 */
开发者ID:Altiscale,项目名称:collectd,代码行数:34,


示例20: sizeof

static struct ip_vs_get_dests *ipvs_get_dests (struct ip_vs_service_entry *se){	struct ip_vs_get_dests *ret;	socklen_t len;	len = sizeof (*ret) + sizeof (struct ip_vs_dest_entry) * se->num_dests;	if (NULL == (ret = malloc (len))) {		log_err ("ipvs_get_dests: Out of memory.");		exit (3);	}	ret->fwmark    = se->fwmark;	ret->protocol  = se->protocol;	ret->addr      = se->addr;	ret->port      = se->port;	ret->num_dests = se->num_dests;	if (0 != getsockopt (sockfd, IPPROTO_IP, IP_VS_SO_GET_DESTS,				(void *)ret, &len)) {		char errbuf[1024];		log_err ("ipvs_get_dests: getsockopt() failed: %s",				sstrerror (errno, errbuf, sizeof (errbuf)));		free (ret);		return NULL;	}	return ret;} /* ip_vs_get_dests */
开发者ID:strizhechenko,项目名称:collectd,代码行数:28,


示例21: camqp_subscribe_init

static int camqp_subscribe_init (camqp_config_t *conf) /* {{{ */{    int status;    pthread_t *tmp;    tmp = realloc (subscriber_threads,            sizeof (*subscriber_threads) * (subscriber_threads_num + 1));    if (tmp == NULL)    {        ERROR ("amqp plugin: realloc failed.");        camqp_config_free (conf);        return (ENOMEM);    }    subscriber_threads = tmp;    tmp = subscriber_threads + subscriber_threads_num;    memset (tmp, 0, sizeof (*tmp));    status = pthread_create (tmp, /* attr = */ NULL,            camqp_subscribe_thread, conf);    if (status != 0)    {        char errbuf[1024];        ERROR ("amqp plugin: pthread_create failed: %s",                sstrerror (status, errbuf, sizeof (errbuf)));        camqp_config_free (conf);        return (status);    }    subscriber_threads_num++;    return (0);} /* }}} int camqp_subscribe_init */
开发者ID:hume-github,项目名称:collectd,代码行数:32,


示例22: statsd_network_read

static void statsd_network_read (statsd_config_t *conf, int fd) /* {{{ */{  char buffer[4096] = {0};  size_t buffer_size;  ssize_t status;  status = recv (fd, buffer, sizeof (buffer), /* flags = */ MSG_DONTWAIT);  if (status < 0)  {    char errbuf[1024];    if ((errno == EAGAIN) || (errno == EWOULDBLOCK))      return;    ERROR ("statsd plugin: recv(2) failed: %s",        sstrerror (errno, errbuf, sizeof (errbuf)));    return;  }  buffer_size = (size_t) status;  if (buffer_size >= sizeof (buffer))    buffer_size = sizeof (buffer) - 1;  buffer[buffer_size] = 0;  pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);  statsd_parse_buffer (conf, buffer);  pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);} /* }}} void statsd_network_read */
开发者ID:skolot,项目名称:collectd,代码行数:28,


示例23: memcached_connect_unix

static int memcached_connect_unix (memcached_t *st){  struct sockaddr_un serv_addr;  int fd;  memset (&serv_addr, 0, sizeof (serv_addr));  serv_addr.sun_family = AF_UNIX;  sstrncpy (serv_addr.sun_path, st->socket,      sizeof (serv_addr.sun_path));  /* create our socket descriptor */  fd = socket (AF_UNIX, SOCK_STREAM, 0);  if (fd < 0)  {    char errbuf[1024];    ERROR ("memcached plugin: memcached_connect_unix: socket(2) failed: %s",        sstrerror (errno, errbuf, sizeof (errbuf)));    return (-1);  }  /* connect to the memcached daemon */  int status = connect (fd, (struct sockaddr *)&serv_addr, sizeof(serv_addr));  if (status != 0)  {      shutdown (fd, SHUT_RDWR);      close (fd);      fd = -1;  }  return (fd);} /* int memcached_connect_unix */
开发者ID:lassizci,项目名称:collectd,代码行数:31,


示例24: numa_init

static int numa_init (void) /* {{{ */{  /* Determine the number of nodes on this machine. */  while (42)  {    char path[PATH_MAX];    struct stat statbuf = { 0 };    int status;    ssnprintf (path, sizeof (path), NUMA_ROOT_DIR "/node%i", max_node + 1);    status = stat (path, &statbuf);    if (status == 0)    {      max_node++;      continue;    }    else if (errno == ENOENT)    {      break;    }    else /* ((status != 0) && (errno != ENOENT)) */    {      char errbuf[1024];      ERROR ("numa plugin: stat(%s) failed: %s", path,          sstrerror (errno, errbuf, sizeof (errbuf)));      return (-1);    }  }  DEBUG ("numa plugin: Found %i nodes.", max_node + 1);  return (0);} /* }}} int numa_init */
开发者ID:Whissi,项目名称:collectd,代码行数:33,


示例25: statsd_init

static int statsd_init (void) /* {{{ */{  pthread_mutex_lock (&metrics_lock);  if (metrics_tree == NULL)    metrics_tree = c_avl_create ((void *) strcmp);  if (!network_thread_running)  {    int status;    status = pthread_create (&network_thread,        /* attr = */ NULL,        statsd_network_thread,        /* args = */ NULL);    if (status != 0)    {      char errbuf[1024];      pthread_mutex_unlock (&metrics_lock);      ERROR ("statsd plugin: pthread_create failed: %s",          sstrerror (errno, errbuf, sizeof (errbuf)));      return (status);    }  }  network_thread_running = 1;  pthread_mutex_unlock (&metrics_lock);  return (0);} /* }}} int statsd_init */
开发者ID:dacamp,项目名称:collectd,代码行数:29,


示例26: statsd_network_read

static void statsd_network_read (int fd) /* {{{ */{  char buffer[4096];  size_t buffer_size;  ssize_t status;  status = recv (fd, buffer, sizeof (buffer), /* flags = */ MSG_DONTWAIT);  if (status < 0)  {    char errbuf[1024];    if ((errno == EAGAIN) || (errno == EWOULDBLOCK))      return;    ERROR ("statsd plugin: recv(2) failed: %s",        sstrerror (errno, errbuf, sizeof (errbuf)));    return;  }  buffer_size = (size_t) status;  if (buffer_size >= sizeof (buffer))    buffer_size = sizeof (buffer) - 1;  buffer[buffer_size] = 0;  statsd_parse_buffer (buffer);} /* }}} void statsd_network_read */
开发者ID:dacamp,项目名称:collectd,代码行数:26,


示例27: riemann_send

static intriemann_send(struct riemann_host *host, Msg const *msg){	u_char *buffer;	size_t  buffer_len;	int status;	pthread_mutex_lock (&host->lock);	status = riemann_connect (host);	if (status != 0)	{		pthread_mutex_unlock (&host->lock);		return status;	}	buffer_len = msg__get_packed_size(msg);	if (host->use_tcp)		buffer_len += 4;	buffer = malloc (buffer_len);	if (buffer == NULL) {		pthread_mutex_unlock (&host->lock);		ERROR ("write_riemann plugin: malloc failed.");		return ENOMEM;	}	memset (buffer, 0, buffer_len);	if (host->use_tcp)	{		uint32_t length = htonl ((uint32_t) (buffer_len - 4));		memcpy (buffer, &length, 4);		msg__pack(msg, buffer + 4);	}	else	{		msg__pack(msg, buffer);	}	status = (int) swrite (host->s, buffer, buffer_len);	if (status != 0)	{		char errbuf[1024];		riemann_disconnect (host);		pthread_mutex_unlock (&host->lock);		ERROR ("write_riemann plugin: Sending to Riemann at %s:%s failed: %s",				(host->node != NULL) ? host->node : RIEMANN_HOST,				(host->service != NULL) ? host->service : RIEMANN_PORT,				sstrerror (errno, errbuf, sizeof (errbuf)));		sfree (buffer);		return -1;	}	pthread_mutex_unlock (&host->lock);	sfree (buffer);	return 0;}
开发者ID:iriscouch,项目名称:collectd,代码行数:59,


示例28: request_meta_data

static int request_meta_data (const char *host, const char *name) /* {{{ */{  Ganglia_metadata_msg msg;  char buffer[BUFF_SIZE];  unsigned int buffer_size;  XDR xdr;  size_t i;  memset (&msg, 0, sizeof (msg));  msg.id = gmetadata_request;  msg.Ganglia_metadata_msg_u.grequest.metric_id.host = strdup (host);  msg.Ganglia_metadata_msg_u.grequest.metric_id.name = strdup (name);  if ((msg.Ganglia_metadata_msg_u.grequest.metric_id.host == NULL)      || (msg.Ganglia_metadata_msg_u.grequest.metric_id.name == NULL))  {    sfree (msg.Ganglia_metadata_msg_u.grequest.metric_id.host);    sfree (msg.Ganglia_metadata_msg_u.grequest.metric_id.name);    return (-1);  }  memset (buffer, 0, sizeof (buffer));  xdrmem_create (&xdr, buffer, sizeof (buffer), XDR_ENCODE);  if (!xdr_Ganglia_metadata_msg (&xdr, &msg))  {    sfree (msg.Ganglia_metadata_msg_u.grequest.metric_id.host);    sfree (msg.Ganglia_metadata_msg_u.grequest.metric_id.name);    return (-1);  }  buffer_size = xdr_getpos (&xdr);  DEBUG ("gmond plugin: Requesting meta data for %s/%s.",      host, name);  pthread_mutex_lock (&mc_send_sockets_lock);  for (i = 0; i < mc_send_sockets_num; i++)  {    ssize_t status = sendto (mc_send_sockets[i].fd, buffer, (size_t) buffer_size,        /* flags = */ 0,        (struct sockaddr *) &mc_send_sockets[i].addr,        mc_send_sockets[i].addrlen);    if (status == -1)    {      char errbuf[1024];      ERROR ("gmond plugin: sendto(2) failed: %s",             sstrerror (errno, errbuf, sizeof (errbuf)));      continue;    }  }  pthread_mutex_unlock (&mc_send_sockets_lock);  sfree (msg.Ganglia_metadata_msg_u.grequest.metric_id.host);  sfree (msg.Ganglia_metadata_msg_u.grequest.metric_id.name);  return (0);} /* }}} int request_meta_data */
开发者ID:beorn-,项目名称:collectd,代码行数:58,


示例29: memset

static void *statsd_network_thread (void *args) /* {{{ */{  statsd_config_t *conf = args;  fds_poll_t fds;  int status;  size_t i;  memset(&fds, 0, sizeof(fds_poll_t));  pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);  status = statsd_network_init (conf, &fds);  if (status != 0)  {    ERROR ("statsd plugin: Unable to open listening sockets.");    pthread_exit ((void *) 0);  }  pthread_cleanup_push(statsd_network_release, &fds);  pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);  while (1) {    status = poll (fds.fds, (nfds_t) fds.fds_num, /* timeout = */ -1);    if (status < 0) {      char errbuf[1024] = {0};      if (EAGAIN == errno)        continue;      if (EINTR == errno) {        DEBUG("statsd plugin: poll(2) has been interrupted");        break;      }      ERROR ("statsd plugin: poll(2) failed: %s",             sstrerror (errno, errbuf, sizeof (errbuf)));      break;    }    DEBUG("statsd plugin: ohh some moving in the sockets");    for (i = 0; i < fds.fds_num; i++) {      if ((fds.fds[i].revents & (POLLIN | POLLPRI)) == 0)        continue;      statsd_network_read(conf, fds.fds[i].fd);      fds.fds[i].revents = 0;    }    pthread_testcancel();  } /* wait for pthread_cancel */  pthread_cleanup_pop(1);  return ((void *) 0);} /* }}} void *statsd_network_thread */
开发者ID:skolot,项目名称:collectd,代码行数:58,


示例30: swap_read_separate

static int swap_read_separate (void) /* {{{ */{	FILE *fh;	char buffer[1024];	fh = fopen ("/proc/swaps", "r");	if (fh == NULL)	{		char errbuf[1024];		WARNING ("swap plugin: fopen (/proc/swaps) failed: %s",				sstrerror (errno, errbuf, sizeof (errbuf)));		return (-1);	}	while (fgets (buffer, sizeof (buffer), fh) != NULL)	{		char *fields[8];		int numfields;		char *endptr;		char path[PATH_MAX];		gauge_t size;		gauge_t used;		gauge_t free;		numfields = strsplit (buffer, fields, STATIC_ARRAY_SIZE (fields));		if (numfields != 5)			continue;		sstrncpy (path, fields[0], sizeof (path));		escape_slashes (path, sizeof (path));		errno = 0;		endptr = NULL;		size = strtod (fields[2], &endptr);		if ((endptr == fields[2]) || (errno != 0))			continue;		errno = 0;		endptr = NULL;		used = strtod (fields[3], &endptr);		if ((endptr == fields[3]) || (errno != 0))			continue;		if (size < used)			continue;		free = size - used;		swap_submit_gauge (path, "used", used);		swap_submit_gauge (path, "free", free);	}	fclose (fh);	return (0);} /* }}} int swap_read_separate */
开发者ID:CheeriosJo,项目名称:collectd,代码行数:57,



注:本文中的sstrerror函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ ssunlikely函数代码示例
C++ sstrdup函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。