⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 envz_merge.c

📁 KPIT GNU Tools is a set of GNU development tools for Renesas microcontrollers.
💻 C
字号:
/* Copyright (C) 2002 by  Red Hat, Incorporated. All rights reserved. * * Permission to use, copy, modify, and distribute this software * is freely granted, provided that this notice is preserved. */#include <errno.h>#include <sys/types.h>#include <string.h>#include <stdlib.h>#include <argz.h>#include <envz.h>error_t_DEFUN (envz_merge, (envz, envz_len, envz2, envz2_len, override),       char **envz _AND       size_t *envz_len _AND       const char *envz2 _AND       size_t envz2_len _AND       int override){  char *entry = NULL;  char *name_str = NULL;  char *val_str = NULL;  char *name_iter = NULL;  int retval = 0;  while((entry = argz_next((char *)envz2, envz2_len, entry)) && !retval)    {      if (!override)        {          name_str = strdup (entry);          name_iter = strchr(name_str, '=');          if(name_iter)            *name_iter = '\0';          if(!envz_entry(*envz, *envz_len, name_str))            {              retval = argz_add(envz, envz_len, entry);            }          free(name_str);        }      else        {          name_str = strdup (entry);          name_iter = strchr(name_str, '=');          if(name_iter)            {              *name_iter = '\0';              val_str = name_iter + 1;            }          else            {              val_str = NULL;            }          retval = envz_add(envz, envz_len, name_str, val_str);        }    }  return retval;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -