Salut. O sa iti raspund la prima parte a mailului, la a 2-a Iulian e cel mai calificat sa iti raspunda.<br><br>In primul rand, take a deep breath...din ceea ce ai scris razbate multa nervozitate. Nu putem purta o discutie bazata pe argumente logice daca nu esti 100% rational (nu, nu incerc sa fiu sarcastic).
<br>Acuma, legat de warningurile alea despre strcat. Ce spun ele de fapt este ca functia strcat in sine este unsafe si ca ar fi bine sa folosesti alta, care e safe. Mai exista inca una despre care nu se pomeneste acolo, si anume strncat, care este si ea safe si in plus e POSIX. Sper ca intelegi motivele pt. care strcat este considerata unsafe. Chiar daca in codul tau nu exista posibilitatea sa depasesti bufferul destinatie, este ceea ce se cheama GPP
a.k.a. Good Programming Practice. Uneori, compilatoarele ne forteaza sa facem anumite lucruri pt. binele nostru, chiar daca Noi, Programatorii, ne credem niste Zei care Nu Pot Gresi.<br><br>Cat despre afirmatia conform careia strcat ai invatat in facultatea asta deci strcat o sa folosesti, mi se pare complet aiurea. Daca pornesti de la premisa asta, nu ai nici o sansa in programare ca domeniu.
<br><br>In al treilea rand, chestia cu warning-urile exista ca sa va determine sa va ganditi la toate aspectele codului vostru, inclusiv cele mai tricky. A functionat bine mersi de un an si ceva, nu vad de ce am scoate-o acum. In plus, este destul de usor sa corectezi erorile alea.
<br><br>Cu respect,<br>Cosmin.<br><br><div class="gmail_quote">On Nov 25, 2007 1:29 AM, Dan Badea <<a href="mailto:dan.badea@microsoft-lab.pub.ro">dan.badea@microsoft-lab.pub.ro</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div link="blue" vlink="purple" lang="EN-US">
<div>
<p><span style="font-size: 10pt;">Targeting
Windows Server 2003 32bit DEBUG</span></p>
<p><span style="font-size: 10pt;"> </span></p>
<p><span style="font-size: 10pt;"> cl
client.cpp</span></p>
<p><span style="font-size: 10pt;"> </span></p>
<p><span style="font-size: 10pt;">Microsoft
(R) Program Maintenance Utility Version 7.00.8882</span></p>
<p><span style="font-size: 10pt;">Copyright
(C) Microsoft Corp 1988-2000. All rights reserved.</span></p>
<p><span style="font-size: 10pt;"> </span></p>
<p><span style="font-size: 10pt;">Microsoft
(R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86</span></p>
<p><span style="font-size: 10pt;">Copyright
(C) Microsoft Corporation. All rights reserved.</span></p>
<p><span style="font-size: 10pt;"> </span></p>
<p><span style="font-size: 10pt;">client.cpp</span></p>
<p><span style="font-size: 10pt;">client.cpp(250)
: warning C4996: 'strcat' was declared deprecated</span></p>
<p><span style="font-size: 10pt;">
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\string.h(78) : see
declaration of 'strcat'</span></p>
<p><span style="font-size: 10pt;">
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.'</span></p>
<p><span style="font-size: 10pt;">client.cpp(251)
: warning C4996: 'strcat' was declared deprecated</span></p>
<p><span style="font-size: 10pt;">
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\string.h(78) : see
declaration of 'strcat'</span></p>
<p><span style="font-size: 10pt;">
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.'</span></p>
<p><span style="font-size: 10pt;">client.cpp(258)
: warning C4996: 'strcat' was declared deprecated</span></p>
<p><span style="font-size: 10pt;">
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\string.h(78) : see
declaration of 'strcat'</span></p>
<p><span style="font-size: 10pt;">
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.'</span></p>
<p><span style="font-size: 10pt;">client.cpp(259)
: warning C4996: 'strcat' was declared deprecated</span></p>
<p><span style="font-size: 10pt;">
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\string.h(78) : see
declaration of 'strcat'</span></p>
<p><span style="font-size: 10pt;">
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.'</span></p>
<p><span style="font-size: 10pt;">Microsoft
(R) Incremental Linker Version 8.00.50727.42</span></p>
<p><span style="font-size: 10pt;">Copyright
(C) Microsoft Corporation. All rights reserved.</span></p>
<p><span style="font-size: 10pt;"> </span></p>
<p><span style="font-size: 10pt;"> </span></p>
<p><span style="font-size: 10pt;">Buna
ziua,</span></p>
<p><span style="font-size: 10pt;"> </span></p>
<p><span style="font-size: 10pt;">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.</span></p>
<p><span style="font-size: 10pt;"> </span></p>
<p><span style="font-size: 10pt;">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. </span></p>
<p><span style="font-size: 10pt;"> </span></p>
<p><span style="font-size: 10pt;">In
concluzie, am rugamintea de a primi inapoi punctul care a fost scazut absolut gratuit
si inutil.</span></p>
<p><span style="font-size: 10pt;"> </span></p>
<p><span style="font-size: 10pt;">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. </span></p>
<p><span style="font-size: 10pt;"> </span></p>
<p><span style="font-size: 10pt;">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). </span></p>
<p><span style="font-size: 10pt;"> </span></p>
<p><span style="font-size: 10pt;">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.</span></p>
<p><span style="font-size: 10pt;"> </span></p>
<p><span style="font-size: 10pt;">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.</span></p>
<p><span style="font-size: 10pt;"> </span></p>
<p><span style="font-size: 10pt;">Cu
bine,</span></p>
<p><span style="font-size: 10pt;">Dan
Badea</span></p>
<p> </p>
</div>
</div>
<br>_______________________________________________<br>so mailing list<br><a href="mailto:so@cursuri.cs.pub.ro">so@cursuri.cs.pub.ro</a><br><a href="http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so" target="_blank">http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
</a><br><br></blockquote></div><br>