
    

    <?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://ocw.cs.pub.ro/courses/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://ocw.cs.pub.ro/courses/feed.php">
        <title>CS Open CourseWare so:laboratoare-2013:resurse</title>
        <description></description>
        <link>http://ocw.cs.pub.ro/courses/</link>
        <image rdf:resource="http://ocw.cs.pub.ro/courses/lib/tpl/arctic/images/favicon.ico" />
       <dc:date>2026-04-25T17:59:09+03:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/c_tips?rev=1394050797&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/die?rev=1394050797&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/gdb?rev=1394050797&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/home?rev=1394050797&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/injections?rev=1394050797&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/oprofile?rev=1394050797&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/recapitulare?rev=1394050797&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/threaduri_extra?rev=1491896930&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/vs_tips?rev=1394050797&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/windows-video?rev=1394050797&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://ocw.cs.pub.ro/courses/lib/tpl/arctic/images/favicon.ico">
        <title>CS Open CourseWare</title>
        <link>http://ocw.cs.pub.ro/courses/</link>
        <url>http://ocw.cs.pub.ro/courses/lib/tpl/arctic/images/favicon.ico</url>
    </image>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/c_tips?rev=1394050797&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-03-05T22:19:57+03:00</dc:date>
        <title>C/SO Tips</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/c_tips?rev=1394050797&amp;do=diff</link>
        <description>Good practice

Verificare cod eroare

	* Verificați codul de eroare întors de apelurile de sistem.
		* Exemplu:

fd = open(FILENAME, O_RDONLY);
if (fd &lt; 0) {
    perror(&quot;open&quot;);
    exit(EXIT_FAILURE);   /* sau alta actiune */
}

if (ReadFile(fHandle,
        &amp;buffer,
        bytesToRead,
        &amp;bytesRead,
        NULL) == FALSE) {
               fprintf(stderr, &quot;Error reading file %d\n&quot;, GetLastError());
               exit(EXIT_FAILURE);
}</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/die?rev=1394050797&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-03-05T22:19:57+03:00</dc:date>
        <title>Macro-ul DIE</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/die?rev=1394050797&amp;do=diff</link>
        <description>Macro-ul DIE

Macrou-ul DIE folosit în sursele din laborator e util pentru verificarea codului de eroare întors de un apel de sistem.

Exemplu de utilizare:


fd = open(&quot;some file&quot;, O_CREAT, 0644);

DIE(fd &lt; 0, &quot;invalid file descriptor&quot;);


Macro-ul DIE este definit în fișierul util/utils.h din arhiva laboratorului și arată în felul următor:</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/gdb?rev=1394050797&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-03-05T22:19:57+03:00</dc:date>
        <title>GDB</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/gdb?rev=1394050797&amp;do=diff</link>
        <description>Rulare gdb

GDB poate fi folosit în două moduri pentru a depana programul:

	*  rulându-l folosind comanda gdb
	*  folosind fişierul core generat în urma unei erori grave (de obicei segmentation fault) 

Cea de a doua modalitate este utilă în cazul în care bug-ul nu a fost corectat înainte de lansarea programului. În acest caz, dacă utilizatorul întâlneşte o eroare gravă, poate trimite programatorului fişierul core cu care acesta poate depana programul şi corecta bug-ul.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/home?rev=1394050797&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-03-05T22:19:57+03:00</dc:date>
        <title>Resurse</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/home?rev=1394050797&amp;do=diff</link>
        <description>Resurse
resurse index</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/injections?rev=1394050797&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-03-05T22:19:57+03:00</dc:date>
        <title>Function Hooking and Windows Dll Injection</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/injections?rev=1394050797&amp;do=diff</link>
        <description>In this tutorial I'll show you how to modify at runtime the behavior of Windows programs.

Function Hot Patching

Problem: we have a function, foo() and we want bar() to be called instead.

Solutions:

	*  modify the code, replace foo() with bar(), doh!. Works when the source is available.
	*  write a library that exports a function with the same signature as foo(), which internally calls bar(). On Unix based systems use the LD_PRELOAD trick to load the library before any other. On Windows, eith…</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/oprofile?rev=1394050797&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-03-05T22:19:57+03:00</dc:date>
        <title>Oprofile</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/oprofile?rev=1394050797&amp;do=diff</link>
        <description>Oprofile

Oprofile este un sistem de profiling disponibil ca modul pentru kernel-ul de Linux (și integrat în variantele mai noi ale acestuia), capabil să analizeze atât kernel-ul, cât și aplicațiile utilizator. Folosește tehnica de sampling și se bazează pe informațiile oferite de contoarele din CPU.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/recapitulare?rev=1394050797&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-03-05T22:19:57+03:00</dc:date>
        <title>Recapitulare</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/recapitulare?rev=1394050797&amp;do=diff</link>
        <description>Laboratorul constă în subiecte în stilul celor de la examen, însoțite de mici bucăți de cod complete sau aproape complete pe care le puteți rula pentru a vă convinge. Discuția pe marginea subiectelor cu asistentul sau cu colegii este încurajată. Subiectele sunt suficient de multe încât nu pot fi acoperite într-un singur laborator.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/threaduri_extra?rev=1491896930&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-04-11T10:48:50+03:00</dc:date>
        <title>Thread-uri - Extra</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/threaduri_extra?rev=1491896930&amp;do=diff</link>
        <description>Terminarea thread-urilor

Există și posibilitatea ca un fir de execuţie să termine un alt fir, folosind mecanismul de “thread cancellation”. Pentru a face acest lucru se folosește funcţia pthread_cancel care primește ca parametru id-ul firului de execuţie ce urmează să fie terminat:</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/vs_tips?rev=1394050797&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-03-05T22:19:57+03:00</dc:date>
        <title>Visual Studio Tips and Tricks</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/vs_tips?rev=1394050797&amp;do=diff</link>
        <description>Visual Studio Tips and Tricks

Setarea parametrilor din linia de comandă

	*  Din meniu se selectează: Project -&gt; Properties
	*  În fereastra care apare se selectează Debugging, apoi se completeaza opțiunea 'Comand Arguments'

   

Afișarea numerotării liniilor

	*  Din meniu se selectează: Tools -&gt; Options
	*  În fereastra care apare se selectează: Text Editor -&gt; C/C++ -&gt; General, apoi se bifează opțiunea Line Numbers</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/windows-video?rev=1394050797&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-03-05T22:19:57+03:00</dc:date>
        <title>so:laboratoare-2013:resurse:windows-video</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare-2013/resurse/windows-video?rev=1394050797&amp;do=diff</link>
        <description>*  install msvc
	*  install sp1
	*  install win32 sdk 7.1

	*  read (with a grain) &lt;http://goldfishforthought.blogspot.com/2008/04/n-habits-of-highly-defective-directshow.html&gt;
	*  &lt;http://tmhare.mvps.org/downloads.htm&gt;
	*  &lt;http://code.google.com/p/graph-studio-next/&gt;</description>
    </item>
</rdf:RDF>
