env.c

来自「spiht的压缩解压缩c编写的」· C语言 代码 · 共 68 行

C
68
字号
#include "spiht.h"
#include "spihtdecode.h"

int QccGetEnv(const char *environment_variable,
              QccString returned_value)
{
  int return_value;
  char *value = NULL;

  if (environment_variable == NULL)
    return(0);

  QccStringMakeNull(returned_value);

  if ((value = getenv(environment_variable)) == NULL)
    goto QccError;

  if (returned_value != NULL)
    QccConvertToQccString(returned_value, value);

  return_value = 0;
  goto QccReturn;
 QccError:
  return_value = 1;
 QccReturn:
  return(return_value);
}

int QccSetEnv(const char *environment_variable,
              const char *value)
{
  int length;
  char *new_string = NULL;
  int return_value;

  if (environment_variable == NULL)
    return(0);
  if (value == NULL)
    return(0);

  if (!QccGetEnv(environment_variable, NULL))
    return(0);

  length = strlen(environment_variable) + strlen(value) + 2;
  
  if ((new_string = (char *)malloc(sizeof(char) * length)) == NULL)
    {
      QccErrorAddMessage("(QccSetEnv): Error allocating memory");
      goto QccError;
    }

  sprintf(new_string, "%s=%s", environment_variable, value);

  if (putenv(new_string))
    {
      QccErrorAddMessage("(QccSetEnv): Error calling putenv() with string \"%s\"",
                         new_string);
      goto QccError;
    }

  return_value = 0;
  goto QccReturn;
 QccError:
  return_value = 1;
 QccReturn:
  return(return_value);
}

⌨️ 快捷键说明

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