You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Version 6.14.0. Process::finalize takes as an additional argument a delay granted to child processes to terminate without being killed. FileLock class allows locking a file against concurrent access. Partial rewrite of the ApplicationStats class + logUsage method logging version and OS.
ConsoleOutput::cerr ( ) << "Erreur lors du confèrement à autrui des droits en écriture sur le fichier de logs " << fileName << " : " << strerror (errno) << co_endl;
189
-
}
190
-
fclose (file);
191
-
exit (0);
144
+
if (fprintf (file, "%s\t%lu\n", (*itl).first.c_str ( ), (*itl).second) < 0)
145
+
{
146
+
UTF8String error (charset);
147
+
error << "Erreur lors de la réécriture du fichier de logs " << fileName << ".";
error << "Erreur lors de la réécriture du fichier de logs " << fileName << " : " << strerror (errno);
157
+
errno = 0;
158
+
throwException (error);
159
+
} // if (0 != fflush (file))
195
160
196
-
// Lecture et actualisation des logs existants :
197
-
map<string, size_t> logs;
198
-
char name [256];
199
-
size_t count = 0, line = 1;
200
-
bool found = false;
201
-
int flag = 0;
202
-
errno = 0;
203
-
while (2 == (flag = fscanf (file, "%s\t%lu", name, &count)))
204
-
{
205
-
line++;
206
-
if (name == user)
207
-
{
208
-
found = true;
209
-
count++;
210
-
} // if (name == user)
211
-
logs.insert (pair<string, size_t> (name, count));
212
-
count = 0;
213
-
} // while (2 == fscanf (file, "%s\t%lu", name, &count))
214
-
if (0 != errno)
215
-
{
216
-
{
217
-
TermAutoStyle as (cerr, AnsiEscapeCodes::blueFg);
218
-
ConsoleOutput::cerr ( ) << "Erreur lors de la lecture du fichier de logs " << fileName << " en ligne " << (unsignedlong)line << " : " << strerror (errno) << co_endl;
219
-
}
220
-
fclose (file);
221
-
exit (0);
222
-
} // if (0 != errno)
223
-
elseif ((flag < 2) && (EOF != flag))
224
-
{
225
-
{
226
-
TermAutoStyle as (cerr, AnsiEscapeCodes::blueFg);
227
-
ConsoleOutput::cerr ( ) << "Erreur lors de la lecture du fichier de logs " << fileName << " en ligne " << (unsignedlong)line << " : fichier probablement corrompu." << co_endl;
228
-
}
229
-
fclose (file);
230
-
exit (0);
231
-
} // if (flag < 2)
232
-
if (false == found)
233
-
logs.insert (pair<string, size_t> (user, 1));
234
-
235
-
// Ecriture des logs actualisés :
236
-
errno = 0;
237
-
if (0 != fseek (file, 0, SEEK_SET))
238
-
{
239
-
{
240
-
TermAutoStyle as (cerr, AnsiEscapeCodes::blueFg);
241
-
ConsoleOutput::cerr ( ) << "Erreur lors de la réécriture du fichier de logs " << fileName << " : " << strerror (errno) << co_endl;
ConsoleOutput::cerr ( ) << "Erreur lors de la réécriture du fichier de logs " << fileName << " : " << strerror (errno) << co_endl;
265
-
}
266
-
fclose (file);
267
-
exit (0);
268
-
} // if (0 != fflush (file))
170
+
TermAutoStyle as (cerr, AnsiEscapeCodes::blueFg);
171
+
ConsoleOutput::cerr ( ) << "ApplicationStats::logUsage : erreur non renseignée lors de l'écriture d'informations dans le fichier \"" << fileName << "\"." << co_endl;
172
+
}
269
173
270
-
// Libération du verrou :
271
-
errno = 0;
272
-
if (0 != flock (fd, LOCK_UN))
174
+
if (0 != file)
273
175
{
274
-
{
275
-
TermAutoStyle as (cerr, AnsiEscapeCodes::blueFg);
276
-
ConsoleOutput::cerr ( ) << "Erreur lors du déverrouillage du fichier de logs " << fileName << " : " << strerror (errno) << co_endl;
0 commit comments