envz_add.c

来自「KPIT GNU Tools is a set of GNU developme」· C语言 代码 · 共 48 行

C
48
字号
/* 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_add, (envz, envz_len, name, value),       char **envz _AND        size_t *envz_len _AND        const char *name _AND       const char *value){  char *concat = NULL;  int name_len = 0;  int val_len = 0;  int retval = 0;  envz_remove(envz, envz_len, name);  if (value)    {      name_len = strlen(name);      val_len = strlen(value);      if(!(concat = (char *) malloc(name_len + val_len + 2)))        return ENOMEM;      memcpy(concat, name, name_len);      concat[name_len] = '=';      memcpy(concat + name_len + 1, value, val_len + 1);      retval = argz_add(envz, envz_len, concat);      free(concat);    }  else    {      retval = argz_add(envz, envz_len, name);    }  return retval;}

⌨️ 快捷键说明

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