[so] Warning-uri si alte probleme
Dan Badea
dan.badea at microsoft-lab.pub.ro
Sun Nov 25 01:29:17 EET 2007
Targeting Windows Server 2003 32bit DEBUG
cl client.cpp
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42
for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
client.cpp
client.cpp(250) : warning C4996: 'strcat' was declared deprecated
C:\Program Files\Microsoft Visual Studio
8\VC\INCLUDE\string.h(78) : see declaration of 'strcat'
Message: 'This function or variable may be unsafe. Consider
using strcat_s instead. To disable deprecation, use
_CRT_SECURE_NO_DEPRECATE. See online help for details.'
client.cpp(251) : warning C4996: 'strcat' was declared deprecated
C:\Program Files\Microsoft Visual Studio
8\VC\INCLUDE\string.h(78) : see declaration of 'strcat'
Message: 'This function or variable may be unsafe. Consider
using strcat_s instead. To disable deprecation, use
_CRT_SECURE_NO_DEPRECATE. See online help for details.'
client.cpp(258) : warning C4996: 'strcat' was declared deprecated
C:\Program Files\Microsoft Visual Studio
8\VC\INCLUDE\string.h(78) : see declaration of 'strcat'
Message: 'This function or variable may be unsafe. Consider
using strcat_s instead. To disable deprecation, use
_CRT_SECURE_NO_DEPRECATE. See online help for details.'
client.cpp(259) : warning C4996: 'strcat' was declared deprecated
C:\Program Files\Microsoft Visual Studio
8\VC\INCLUDE\string.h(78) : see declaration of 'strcat'
Message: 'This function or variable may be unsafe. Consider
using strcat_s instead. To disable deprecation, use
_CRT_SECURE_NO_DEPRECATE. See online help for details.'
Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.
Buna ziua,
As vrea sa stiu si eu cum de sunt depunctat 1 punct la tema 2 varianta
Windows pentru aceste warning-uri si daca vi se pare normal.
Nu stiu despre altii, dar eu nu am invatat in facultatea asta despre
alte functii de concatenare decat strcat asa ca nu am de gand sa
folosesc altele pentru teme. Iar despre warning-uri daca acesta functie
este intr-adevar deprecated sugerz calduros sa se puna acelasi label si
pe anumite materii pe care le avem in curriculum. Nu mi se pare normal
sa suprim warning-uri doar de dragul de a satisface niste conditii la
tema despre care sincer nici nu stiam ca exista, mai ales ca aceste
warning-uri nu indica nici o problema reala in cod. Asa pot sa ma apuc
si sa suprim toate warning-urile si gata. Vi se pare normal? Sau sa
suprim ce ma deranjeaza pe mine la respective implementare. Asa se
procedeaza? Exista warning-uri care intr-adevar indica o problema si
warning-uri stupide ca acestea. Nu e prea elegant sa lasi un program sa
depuncteze automat la numar de warning-uri. Nu va suparati, dar e vorba
despre acelasi warning care apare de 4 ori si nu de 4 warning-uri. Mi se
pare super tare ca sunt depunctat la numarul de utilizari ale unei
functii (pe care am fost invatat in ACEASTA facultate sa o folosesc).
Daca o foloseam doar de 3 ori eram depunctat mai putin? Ca sa nu mai
spun ca acest warning este cat se poate de compiler dependent.
In concluzie, am rugamintea de a primi inapoi punctul care a fost scazut
absolut gratuit si inutil.
In alta ordine de idei as mai vrea sa semnalez o problema de-a dreptul
interesanta. Poate face eu ceva gresit si nu inteleg bine cum stau
lucrurile si atunci ar fi bine sa primesc o lamurire. Pentru ca daca nu
ma insel si lucrurile stau asa cum cred eu nu e tocmai bine.
Este vorba despre "testele" de la Tema 2. Problema apare tot la varianta
pe Windows unde pentru verificarea prezentei unui mesaj in mailslot nu
exitsa o functie blocanta care sa realizeze acest lucru. In consecinta
pentru a nu face bussy waiting, in momentul in care vezi ca nu sunt
mesaje nu verifici imediat inca o data sa vezi daca exista mesaje, ci,
faci un mic sleep (eu cel putin asa fac - nu cred sa existe o alta
solutie). Problema foarte interesanta este legata de valoarea pe care o
trimiti functiei sleep. Eu de exemplu am folosit un sleep de 100 de
milisecunde. Daca insa in loc de 100 fac bussy waiting (deci practic
sleep de 0) anumite teste imi pica (5,6). Daca fac sleep de 150 de
milisecunde, iar incep sa imi pice teste (6).
Dupa parerea mea problema este numai si numai legata de modul de testare
care se bazeaza pe verificarea unor print-uri la anumite momente de
timp. In functie de sleep-ul pe care il fac intre doua momente la care
am un mesaj de procest, este posibil, ca sa se execute mai putine sau
mai multe operatii decat se astepta "checker-ul". Aceasta metoda de
testare mi se pare defectoasa in acest scenariu in care pot exista mai
multi clienti care nu stiu unul de altul si de ordinea in care
comenziule au ajuns la server (poate au fost intercalate cu altele de la
alt client) si de ordinea si momentul de timp in care serverul a
executat respectivele comenzi.
Astept o lamurire in legatura cu aceasta problema. Poate nu fac eu cum
trebuie la implementarea pe Windows si trebuie sa fac altfel, nu cu
Sleep de o anumita perioada.
Cu bine,
Dan Badea
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/so/attachments/20071125/f8dd930a/attachment-0001.html
More information about the so
mailing list