amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Signale [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

22.09.2002, 13:34 Uhr

StefanHaegele
Posts: 281
Nutzer
Hallo,

habe folgende Frage:

Die folgende Signale werden in der Datei exec/task.h definiert:

SIGB_Child, SIGB_Net, SIGB_Single

Dürfen diese frei benützt werden ? Oder welchen Sinn haben die im OS.
Ich weiß, dass ich 16 Signale zur freien Verfügung habe, aber sollten diese frei sein, wieso sollte man sie nicht nutzen.

Für was die Signale

SIGB_Intuition & SIGB_DOS sind, ist mir am Namen klar, jedoch gibt es noch das Signal SIGB_Abort. Dies ist mir auch nicht klar, da es ja hierfür eingentlich das Signal SIGBBreak_CTRL_C gibt ?

Danke
Stefan

[ - Antworten - Zitieren - Direktlink - ]

23.09.2002, 12:38 Uhr

DariusBrewka
Posts: 899
[Benutzer gesperrt]
Ob die Signale irgendwo im System benutzt werden ist irrelevant, es ist Klar das für Anwender nur 16 zur Verfügung stehen, die mittels AllocSignal belegt werden MÜSSEN.

Bei SIGB_SINGLE steht bei mir "same as SIGB_BLIT", nuja nun darf man raten was das wohl bedeutet, SIGBreak_CTRL_C ist ein DOS Signal und da es ein anderes Bit benutzt als SIGB_Abort kann ich mir auch gut vorstellen dass es etwas anderes bedeutet. Andererseits heisst SIGBBreak_CTRL_C auch nicht unbedingt, dass das Programm abbrechen muss, sondern nur dass die Tastenkombination gedrückt wurde, d.h. es ist ein USER Signal, währenddessen SIGB_Abort ein internes SystemSignal ist.

Eine Frage, was willst du mit so vielen Signalen eigentlich machen?

gruss

[ - Antworten - Zitieren - Direktlink - ]

23.09.2002, 14:18 Uhr

StefanHaegele
Posts: 281
Nutzer
Hallo,

ich brauche nur 3 Signale, aber ich wollte wissen für was diese Signale genau sind. Denn wenn diese definiert sind, sollten Sie ja auch immer den gleichen Zweck haben.

Des Sinn desn Signals SIGB_Single habe ich z.B. nicht genau verstanden. Denn man darf dieses Signal unter bestimmten Umständen benutzen. War irgenwie um ständiges allokieren/deallokieren des OS zu verhindern bei Systemfunktionen. ( AmigaMail #2 ist es beschrieben )
Aber wie gesagt, ich versteh den Sinn nicht ganz. Auch das Beispielprogramm ist etwas "seltsam".

Stefan

[ - Antworten - Zitieren - Direktlink - ]

26.09.2002, 14:07 Uhr

gni
Posts: 1106
Nutzer
Zitat:
SIGB_Child, SIGB_Net, SIGB_Single

Dürfen diese frei benützt werden ?


Nur SIGB_SINGLE.

Zitat:
Oder welchen Sinn haben die im OS.
Ich weiß, dass ich 16 Signale zur freien Verfügung habe, aber sollten diese frei sein, wieso sollte man sie nicht nutzen.


Signale die vom System benutzt werden, sind per Definition /tabu/. Dir kann völlig egal sein, wofür diese Signale benutzt werden. Das diese Definitionen in einem Headerfile zu finden sind, ist ein Fehler.

Zitat:
SIGB_Abort. Dies ist mir auch nicht klar, da es ja hierfür eingentlich das Signal SIGBBreak_CTRL_C gibt ?

Vergiß die Existenz von SIGB_ABORT.Für Dich als Programmierer sind nur die CTRL Signale von Interesse.

[ - Antworten - Zitieren - Direktlink - ]

30.09.2002, 09:16 Uhr

tokai
Posts: 1071
Nutzer
das heisst übrigends auch, dass man auf herkömlichen Weg auch nur 16 Fenster öffnen kann. :)

code:
#include <proto/intuition.h>
#include <proto/dos.h>
#include <proto/exec.h>

#include <stdio.h>


/* intuilib autoinit */
extern struct IntuitionBase *IntuitionBase;

int main(void)
{
    struct Window *Win[20];
    int i;
     
    /* open all windows */
    for(i=0;i<20;i++)
    {
           if ( Win[i] = OpenWindowTags(NULL,
                                        WA_Left,          60+5*i,
                                        WA_Top,           60+5*i,
                                        WA_Width,         300,
                                        WA_Height,        200,
                                        /* IDCMP! Because we want a port! */
                                        WA_IDCMP,         IDCMP_CLOSEWINDOW,
                                        WA_DragBar,       TRUE,
                                        TAG_DONE) )
           {
               printf("Window #%0.2i opened, SigBit %0.8lx.n",i,(1L << Win[i]->UserPort->mp_SigBit)  );
           }
           else
           {
               printf("Couldn't open window #%in",i);
           }
    }
    
    Delay(500);
                        
    /* close all opened windows */
    for (i=0;i<20;i++)
    {
        if (Win[i]) { CloseWindow(Win[i]); }
    }

    return RETURN_OK;
}


die Backslashs vor den eckigen Klammern müsst Ihr Euch wegdenken. Leider entfernt das Forum sonst die eckigen Klammern. örgs. :)

--
http://www.christianrosentreter.de

[ Dieser Beitrag wurde von tokai am 30.09.2002 editiert. ]

[ Dieser Beitrag wurde von tokai am 30.09.2002 editiert. ]

[ Dieser Beitrag wurde von tokai am 30.09.2002 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Signale [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.