02-28-2006
No more problem
I made this in C like this:
void closeAllOpenedFiles()
{
//nombre maximum de fichiers que peut ouvrir un processus
int nombre_max_fichiers=sysconf(_SC_OPEN_MAX);
int i=0;
struct stat filestat;
FILE * currentFile=NULL;
//Parcours des fichiers ouverts par le processus
for(i=3;i<nombre_max_fichiers;++i)
{
//Si le fichier est ouvert
if(fstat(i,&filestat)==0)
{
currentFile=fdopen(i,(char*)fcntl(i,F_GETFL));
if(currentFile!=NULL)
{
//On fait le flush
fflush(currentFile);
//On ferme le fichier
close(i);
}
}
}
//Parcours sut stdin,stdout,stderr
for(i=0;i<3;++i)
{
currentFile=fdopen(i,(char*)fcntl(i,F_GETFL));
//On fait le flush
fflush(currentFile);
}
}
That has solved my problem because when my program meet an error i call this routine to close all opened files.
Thanks.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi ,
i' d like to use an awk script to automate the ripping of cds : here's how it works :
- i first create a file named songs.txt containing the name of the songs
- the scripts extracts the tracks of a cd with cdparanoia
- the scripts saves the contents of the dir with ls (ls > list.txt)
-... (0 Replies)
Discussion started by: krhamidou
0 Replies
2. Shell Programming and Scripting
Is there a way to tell for sure if a file currently is opened by any running process?
I have a task to filter a text file which is produced by some long process.
I have no way to communicate with that process, but I have access to a location, where that proces produce an output file.
Need... (3 Replies)
Discussion started by: alex_5161
3 Replies
3. AIX
Is it possible to get the hostname of the server we are currently working on (physically) even if we have rlogged/tn to another one ?
There is this DISPLAY variable we always have to setup everytime we log to a server (anyone). It has to be set to the name of the server we are physically working... (3 Replies)
Discussion started by: Browser_ice
3 Replies
4. UNIX for Advanced & Expert Users
Hello, How do i check number of files currently opening in the linux server? Your help is highly appreciated. Thank you
---------- Post updated at 02:43 PM ---------- Previous update was at 02:19 PM ----------
never mind!! I got it.
---------- Post updated at 02:44 PM ---------- Previous... (3 Replies)
Discussion started by: govindts
3 Replies
5. Shell Programming and Scripting
Hello all,
I have a file that is growing and growing by the action of any process.
How can I find what process is?
Thank you (2 Replies)
Discussion started by: albertogarcia
2 Replies
6. Shell Programming and Scripting
Hello.
I have to make a script with more than 1 SQL query and the problem is that i have to alternate from sql commands to unix commands.
what i would like to know if it's posible(and how) to keep the databse connection opened till last sql command is ran and execute unix commands while the... (2 Replies)
Discussion started by: daniel1988
2 Replies
7. Shell Programming and Scripting
Hi
#Testing for file existence
if ; then
echo 'SCHOOL data is available for processing'
else
echo 'SCHOOL DATA IS NOT AVAILABLE FOR PROCESSING'
:
i wrote a script, where it begins by checking if file exists or not.
If it exists, it truncates the database... (2 Replies)
Discussion started by: rxg
2 Replies
8. UNIX for Advanced & Expert Users
is it possible to duplicate file descriptors(opened by a different process) with the help of dup or dup2. the two process do not share parent child relationship as well. (2 Replies)
Discussion started by: replytoshishir
2 Replies
9. Shell Programming and Scripting
we want to backup all opened files by vi before editing also with version information. i wrote below alias to backup crontab file content with version info. What i want know is to make this opened files by vi. We want to prevent user mistakes by adding this alias.
alias crontab='DATE=$(date... (4 Replies)
Discussion started by: sebu
4 Replies
10. UNIX for Beginners Questions & Answers
Hey all,
I'm running apache (cswapache2) on a Solaris 11.3 server.
Recently, if I create a new vhost, the service fails to restart, and enters in maintenance mode.
If I comment lines with log files, the service starts again.
I guess I've reached the limit.
I checked the current values... (8 Replies)
Discussion started by: omegared77
8 Replies
LEARN ABOUT OPENSOLARIS
tnfctl_internal_open
tnfctl_internal_open(3TNF) TNF Library Functions tnfctl_internal_open(3TNF)
NAME
tnfctl_internal_open - create handle for internal process probe control
SYNOPSIS
cc [ flag ... ] file ... -ltnfctl [ library ... ]
#include <tnf/tnfctl.h>
tnfctl_errcode_t tnfctl_internal_open(tnfctl_handle_t **ret_val);
DESCRIPTION
tnfctl_internal_open() returns in ret_val a pointer to an opaque handle that can be used to control probes in the same process as the call-
er (internal process probe control). The process must have libtnfprobe.so.1 loaded. Probes in libraries that are brought in by dlopen(3C)
will be visible after the library has been opened. Probes in libraries closed by a dlclose(3C) will not be visible after the library has
been disassociated. See the NOTES section for more details.
RETURN VALUES
tnfctl_internal_open() returns TNFCTL_ERR_NONE upon success.
ERRORS
TNFCTL_ERR_ALLOCFAIL A memory allocation failure occurred.
TNFCTL_ERR_BUSY Another client is already tracing this program (internally or externally).
TNFCTL_ERR_NOLIBTNFPROBE libtnfprobe.so.1 is not linked in the target process.
TNFCTL_ERR_INTERNAL An internal error occurred.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWtnfc |
+-----------------------------+-----------------------------+
|MT Level |MT-Safe |
+-----------------------------+-----------------------------+
SEE ALSO
ld(1), prex(1), TNF_PROBE(3TNF), dlopen(3C), dlclose(3C), libtnfctl(3TNF), tracing(3TNF), attributes(5)
Linker and Libraries Guide
NOTES
libtnfctl interposes on dlopen(3C) and dlclose(3C) in order to be notified of libraries being dynamically opened and closed. This interpo-
sition is necessary for internal process probe control to update its list of probes. In these interposition functions, a lock is acquired
to synchronize on traversal of the library list maintained by the runtime linker. To avoid deadlocking on this lock, tnfctl_inter-
nal_open() should not be called from within the init section of a library that can be opened by dlopen(3C).
Since interposition does not work as expected when a library is opened dynamically, tnfctl_internal_open() should not be used if the client
opened libtnfctl through dlopen(3C). In this case, the client program should be built with a static dependency on libtnfctl. Also, if the
client program is explicitly linking in -ldl, it should link -ltnfctl before -ldl.
Probes in filtered libraries (see ld(1)) will not be seen because the filtee (backing library) is loaded lazily on the first symbol refer-
ence and not at process startup or dlopen(3C) time. A workaround is to call tnfctl_check_libs(3TNF) once the caller is sure that the filtee
has been loaded.
SunOS 5.11 1 Mar 2004 tnfctl_internal_open(3TNF)