linux system-system function can not run correct after modify the enviroment?

问题描述

system function can not run correct after modify the enviroment?

#include
#include
#include
#include

int main()
{
char *ptr = NULL;
char path[1024] = {0};
char pathori[1024] = {0};
int ret = 0;

ptr = getenv("PATH");

strcpy(pathori, ptr);

printf("pathori=%sn", pathori);

setenv("PATH", "/home/chenlong12580/develop/bina", 1);

ret = system("test");
printf("ret=%dn", ret);

ptr = getenv("PATH");
memset(path, 0, 1024);
strcpy(path, ptr);
printf("path1=%sn", path);

setenv("PATH", pathori, 1);
ptr = getenv("PATH");
memset(path, 0, 1024);
strcpy(path, ptr);
printf("path2=%sn", path);

return 0;

}

时间: 2024-11-17 19:19:32

linux system-system function can not run correct after modify the enviroment?的相关文章

Linux中system函数的实现

#include <errno.h> #include <signal.h> #include <unistd.h> int system(const char *cmdstring) /* with appropriate signal handling */ { pid_t pid; int status; struct sigaction ignore, saveintr, savequit; sigset_t chldmask, savemask; if (cm

从Linux访问System Z主机的方法

c3270简介 日常工作中,我们一般都在Windows操作系统使用IBM Personal Communications 来访问System Z 主机.实际上对于经常使用Linux操作系统的用户来说,Linux上也有很不错的的工具来访问System Z 主机.比如我们今天介绍的c3270. c3270是一个通过telnet连接System Z主机的开放源码的工具,它的界面基于Curse,是一种文字用户界面,也就是Text User Interface,可以运行在Console下.c3270是x3

Master Note For Automatic Storage Management (ASM) For Operating System (OS) Administrators [ID 1345

In this Document  Purpose   Scope   Master Note For Automatic Storage Management (ASM) For Operating System (OS) Administrators      All Platforms      Linux x86-64      Solaris      HP-UX      IBM AIX      Microsoft Windows      IBM Linux on Z Appli

Oracle I/O and Operation System Cache

[转] Direct or Async I/O It's pretty well documented that the most efficient configuration for Oracle is direct asynchronous I/O. Direct I/O means to avoid unnecessarily copying bits from one memory location to another between the hardware and the SGA

CREATE FILE encountered operating system error 5(Access is denied.)

 这篇博文主要演示"CREATE FILE encountered operating system error 5(Access is denied.)"错误如出现的原因(当然只是导致这个错误出现的一种场景而已)和如何解决这个问题以及一些不解的迷惑.   实验环境:         操作系统版本: Windows Server 2012 SP2         数据库的版本:Microsoft SQL Server 2014 - 12.0.2000.8 如下所示,SQL Server

fork+exec 与system,popen区别

1.fork + exec fork用来创建一个子进程.一个程序一调用fork函数,系统就为一个新的进程准备了前述三个段,首先,系统让新的进程与旧的进程使用同一个代码段,因为它们的程序还是相同的,对于数据段和堆栈段,系统则复制一份给新的进程,这样,父进程的所有数据都可以留给子进程,但是,子进程一旦开始运行,虽然它继承了父进程的一切数据,但实际上数据却已经分开,相互之间不再有影响了,也就是说,它们之间不再共享任何数据了.而如果两个进程要共享什么数据的话,就要使用另一套函数(shmget,shmat

WPF工程运行出现Exception Info: System.IO.FileLoadException.

问题描述 加载界面时候出现如下的异常,是通过系统日志查看到的,请问如何解决,是权限不够读取失败还是怎么了?我使用了OxyPlot绘图,加载这个绘图工具是不是要什么环境?在自己的win7系统的电脑运行没问题,但是在有的电脑上运行不起来,有的可以Application:TanksDataBase.exeFrameworkVersion:v4.0.30319Description:Theprocesswasterminatedduetoanunhandledexception.ExceptionInf

简述C语言中system()函数与vfork()函数的使用方法_C 语言

C语言system()函数:执行shell命令头文件: #include <stdlib.h> 定义函数: int system(const char * string); 函数说明:system()会调用fork()产生子进程, 由子进程来调用/bin/sh-c string 来执行参数string 字符串所代表的命令, 此命令执行完后随即返回原调用的进程. 在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT 和SIGQUIT 信号则会被忽略. 返回值: 1.如果 sy

c语言中的system函数问题

问题描述 c语言中的system函数问题 在代码里面用system 函数 打开某一程序,结果导致打开这一程序后,下面的system函数用不了 . 请看图.......... 解决方案 求大神啊!!!!!!!!!!!!!!!!!!!! 解决方案二: system()函数功能强大,很多人用却对它的原理知之甚少先看linux版system函数的源码: #include <sys/types.h> #include <sys/wait.h> #include <errno.h>