05-01-2009
This code must be C++, since you cannot declare global variables from function return values in C. This bug is why I think that feature was a bad idea... fopen(getenv("LOG_PATH"),"a"); might work but will crash if LOG_PATH is not set, and you should be calling getenv and fopen in main instead anyway, or at least from a function which knows the proper order to set them in, which the compiler doesn't.
Last edited by Corona688; 05-01-2009 at 12:13 PM..
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
We are running a SQR program on Unix Platform with Oracle RDBMS.
It's an interfacing program to integrate data from foreign sites to
PeopleSoft database, using a flat file input.
After many hours of processing, the program stops with a coredump error (memory fault). With top command we noticed... (1 Reply)
Discussion started by: araziki
1 Replies
2. Programming
Dear All,
I made a program which do some simple jobs like reading data from other process's shared memory and writing messages to the queues of other process.
what happens is my program works fine and do all the task as expected but then then program ends it give Memory fault(coredump). I... (0 Replies)
Discussion started by: ralo
0 Replies
3. AIX
Hi All
Can anybody help me?
When ever am trying to run topas system gives me an error Segmentation fault(coredump)
does anybody ahve solution for this? (4 Replies)
Discussion started by: vjm
4 Replies
4. Ubuntu
Hey guys,
I am new to the Linux world and have a question to post.
When I ssh from a HP-UX machine to a ubuntu machine I get the following error message
Memory fault(coredump)
i.e. ssh 192.168.1.3
I get this message as shown below
Memory fault(coredump)
Can someone please explain... (2 Replies)
Discussion started by: fkaba81
2 Replies
5. Solaris
Getting memory fault (coredump) and segmentation fault(coredump)
when i tried javac or java -version. what could be the problem?
Regards
Eswar (2 Replies)
Discussion started by: BhuvanEswar
2 Replies
6. Shell Programming and Scripting
I'm getting this error when trying to run a Acucobol program thru UNIX..
Segmentation Fault(coredump)
Precompiler error prevents compilation of xxxxxx.co.
Please help me in this case.. (1 Reply)
Discussion started by: Manish4
1 Replies
7. Shell Programming and Scripting
i have few log files that are input to my perl script...
i am executing the script as below
cat RTR*.log | test.pl
and getting the following error
-ksh: 25014: Memory fault(coredump)
cat: write error: Connection reset by peer
can anyone help me on this....
Thanks in... (2 Replies)
Discussion started by: niteesh_!7
2 Replies
8. AIX
Hi Experts,
While running a command, i saw this error below
# ls -lrt
total 74008
-rw-r--r-- 1 rr57104 edcfes 37889134 May 16 12:41 LGTOnw.clnt.7.4.2.0.bff.tar.gz
drwxr-xr-x 2 root system 256 May 18 12:42 lost+found
# gunzip LGTOnw.clnt.7.4.2.0.bff.tar.gz
Memory fault(coredump)
... (2 Replies)
Discussion started by: EngnrRG
2 Replies
9. Homework & Coursework Questions
I am writing a program that copies a program and prints the program with a line count.
this is the program I wrote:
#include <stdio.h>
main()
{
int c;
int nl_cnt = 0;
while((c = getchar()) != EOF){
if(c = '\n'){
nl_cnt++;... (3 Replies)
Discussion started by: heywoodfloyd
3 Replies
10. UNIX for Advanced & Expert Users
Hi,
In my application we have one job which is used to process the files. But that job is failing with memory fault while processing a file or while shutting down the job. Sometime it generates the coredump and sometimes not. When I analysed the core dump I got below code snippet where it... (3 Replies)
Discussion started by: shilpa_20
3 Replies
GETENV(3) BSD Library Functions Manual GETENV(3)
NAME
getenv, putenv, setenv, unsetenv -- environment variable functions
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <stdlib.h>
char *
getenv(const char *name);
int
putenv(char *string);
int
setenv(const char *name, const char *value, int overwrite);
int
unsetenv(const char *name);
DESCRIPTION
These functions set, unset and fetch environment variables from the host environment list. For compatibility with differing environment con-
ventions, the given arguments name and value may be appended and prepended, respectively, with an equal sign ``=''.
The getenv() function obtains the current value of the environment variable, name.
The setenv() function inserts or resets the environment variable name in the current environment list. If the variable name does not exist
in the list, it is inserted with the given value. If the variable does exist, the argument overwrite is tested; if overwrite is zero, the
variable is not reset, otherwise it is reset to the given value.
The putenv() function takes an argument of the form ``name=value'' and is equivalent to:
setenv(name, value, 1);
The string pointed to by string becomes part of the environment. A program should not alter or free the string, and should not use stack or
other transient string variables as arguments to putenv(). The setenv() function is strongly preferred to putenv().
The unsetenv() function deletes all instances of the variable name pointed to by name from the list. Note that only the variable name (e.g.,
"NAME") should be given; "NAME=value" will not work.
RETURN VALUES
The getenv() function returns the value of the environment variable as a NUL-terminated string. If the variable name is not in the current
environment, NULL is returned.
The setenv(), putenv(), and unsetenv() functions return the value 0 if successful; otherwise the value -1 is returned and the global variable
errno is set to indicate the error.
ERRORS
[EINVAL] The function unsetenv() failed because name was not found in the environment list.
[ENOMEM] The function setenv() or putenv() failed because it was unable to allocate memory for the environment.
LEGACY SYNOPSIS
#include <stdlib.h>
void
unsetenv(const char *name);
unsetenv() doesn't return a value.
COMPATIBILITY
putenv() no longer copies its input buffer. This often appears in crash logs as a crash in getenv(). Avoid passing local buffers or freeing
the memory that is passed to putenv(). Use setenv(), which still makes an internal copy of its buffers.
unsetenv() no longer parses the variable name; e.g., unsetenv ("FOO=BAR") no longer works. Use unsetenv("FOO"). unsetenv() also now returns
a status value and will set errno to EINVAL if name is not a defined environment variable.
SEE ALSO
csh(1), sh(1), execve(2), compat(5), environ(7)
STANDARDS
The getenv() function conforms to ISO/IEC 9899:1990 (``ISO C90'').
BUGS
Successive calls to setenv() or putenv() assigning a differently sized value to the same name will result in a memory leak. The FreeBSD
semantics for these functions (namely, that the contents of value are copied and that old values remain accessible indefinitely) make this
bug unavoidable. Future versions may eliminate one or both of these semantic guarantees in order to fix the bug.
HISTORY
The functions setenv() and unsetenv() appeared in Version 7 AT&T UNIX. The putenv() function appeared in 4.3BSD-Reno.
BSD
December 11, 1993 BSD