diff --git a/SystemInformation.cxx b/SystemInformation.cxx index cbd1bdc13..6b63b9469 100644 --- a/SystemInformation.cxx +++ b/SystemInformation.cxx @@ -74,6 +74,18 @@ typedef int siginfo_t; # include // extern int errno; #endif +#ifdef __FreeBSD__ +# include +# include +# include +# include +# include +# if defined(KWSYS_SYS_HAS_IFADDRS_H) +# include +# define KWSYS_SYSTEMINFORMATION_IMPLEMENT_FQDN +# endif +#endif + #ifdef __APPLE__ # include # include @@ -84,6 +96,10 @@ typedef int siginfo_t; # include # include # include +# if defined(KWSYS_SYS_HAS_IFADDRS_H) +# include +# define KWSYS_SYSTEMINFORMATION_IMPLEMENT_FQDN +# endif # if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0 >= 1050 # include # define KWSYS_SYSTEMINFORMATION_HAVE_BACKTRACE @@ -95,9 +111,17 @@ typedef int siginfo_t; # include # include # include +# if defined(KWSYS_SYS_HAS_IFADDRS_H) +# include +# if !defined(__LSB_VERSION__) /* LSB has no getifaddrs */ +# define KWSYS_SYSTEMINFORMATION_IMPLEMENT_FQDN +# endif +# endif # if defined(__GNUG__) # include -# define KWSYS_SYSTEMINFORMATION_HAVE_BACKTRACE +# if !(defined(__LSB_VERSION__) && __LSB_VERSION__ < 41) +# define KWSYS_SYSTEMINFORMATION_HAVE_BACKTRACE +# endif # endif # if defined(KWSYS_CXX_HAS_RLIMIT64) typedef struct rlimit64 ResourceLimitType; @@ -111,10 +135,6 @@ typedef struct rlimit ResourceLimitType; # include #endif -#if defined(KWSYS_SYS_HAS_IFADDRS_H) -# include -#endif - #ifdef __HAIKU__ # include #endif @@ -453,7 +473,7 @@ bool SystemInformation::DoesCPUSupportFeature(long int i) kwsys_stl::string SystemInformation::GetCPUDescription() { - kwsys_stl::ostringstream oss; + kwsys_ios::ostringstream oss; oss << this->GetNumberOfPhysicalCPU() << " core "; @@ -543,7 +563,7 @@ int SystemInformation::GetOSIsApple() kwsys_stl::string SystemInformation::GetOSDescription() { - kwsys_stl::ostringstream oss; + kwsys_ios::ostringstream oss; oss << this->GetOSName() << " " @@ -599,7 +619,7 @@ kwsys_stl::string SystemInformation::GetMemoryDescription( const char *hostLimitEnvVarName, const char *procLimitEnvVarName) { - kwsys_stl::ostringstream oss; + kwsys_ios::ostringstream oss; oss << "Host Total: " << iostreamLongLong(this->GetHostMemoryTotal()) @@ -805,7 +825,7 @@ int NameValue( { continue; } - kwsys_stl::istringstream is(lines[i].substr(at+name.size())); + kwsys_ios::istringstream is(lines[i].substr(at+name.size())); is >> value; return 0; } @@ -1271,7 +1291,7 @@ int SystemInformationImplementation::GetFullyQualifiedDomainName( WSACleanup(); return 0; -#elif defined(KWSYS_SYS_HAS_IFADDRS_H) +#elif defined(KWSYS_SYSTEMINFORMATION_IMPLEMENT_FQDN) // gethostname typical returns an alias for loopback interface // we want the fully qualified domain name. Because there are // any number of interfaces on this system we look for the @@ -3310,7 +3330,7 @@ SystemInformationImplementation::GetProcMemoryUsed() #elif defined(__APPLE__) SystemInformation::LongLong memUsed=0; pid_t pid=getpid(); - kwsys_stl::ostringstream oss; + kwsys_ios::ostringstream oss; oss << "ps -o rss= -p " << pid; FILE *file=popen(oss.str().c_str(),"r"); if (file==0) @@ -3335,7 +3355,7 @@ SystemInformationImplementation::GetProcMemoryUsed() { return -2; } - kwsys_stl::istringstream iss(oss.str()); + kwsys_ios::istringstream iss(oss.str()); iss >> memUsed; return memUsed; #else @@ -4670,22 +4690,12 @@ int SystemInformationImplementation::CallSwVers( kwsys_stl::string &ver) { #ifdef __APPLE__ - kwsys_stl::ostringstream oss; - oss << "sw_vers " << arg; - FILE *f=popen(oss.str().c_str(),"r"); - if (f==0) - { - return -1; - } - oss.str(""); - char buf[256]={'\0'}; - while (fgets(buf, 256, f) != 0) - { - oss << buf; - } - pclose(f); - kwsys_stl::istringstream iss(oss.str()); - iss >> ver; + kwsys_stl::vector args; + args.push_back("sw_vers"); + args.push_back(arg); + args.push_back(0); + ver = this->RunProcess(args); + this->TrimNewline(ver); #else // avoid C4100 (void)arg;