Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wo ist die Bibliothek /usr/include/sys/lock.h?



Abraxas
27-06-2005, 17:20
Hallo zusammen,

ich bin neue hier und möchte erstmal alle begrüßen!

Gleich mal meine erste Frage:

Wo ist eigentlich die C-Bibliothek lock.h? Ich habe ein kleines Programm, welches die Zugriffsrechte auf Dateien verändern soll - und das funktioniert nur mit den entsprechenden Systemfunktionen.

Wo sind denn die jetzt - wurde die Bibliothek inzwischen durch eine andere ersetzt?

Danke schonmal!

bischi
27-06-2005, 19:21
als root angemeldet?

MfG Bischi

peschmae
27-06-2005, 19:28
Wo ist eigentlich die C-Bibliothek lock.h? Ich habe ein kleines Programm, welches die Zugriffsrechte auf Dateien verändern soll - und das funktioniert nur mit den entsprechenden Systemfunktionen.

Wo sind denn die jetzt - wurde die Bibliothek inzwischen durch eine andere ersetzt?


Hallo. lock.h ist nur eine Header-Datei. Keine Bibliothek. Bei mir ist die in den Kernel-Sourcen enthalten.
Allerdings weiss ich nicht ob man so zeugs vom Userspace aus verwenden kann oder darf.

Da ich nicht so genau weiss was du da jetzt willst verweise ich mal auf http://www.pronix.de/pronix-95.html wo was zu Dateirechten setzen steht. Oder auf das Helmut-Herold-Unix-Linux-Systemprogrammierung-Buch, natürlich.

MfG Peschmä

Abraxas
29-06-2005, 15:25
Danke für den Tip!

Also ich habe hier ein älteres Programm, das ich irgendwie zum Laufen kriegen will:


#include <stdio.h>
#include <sys/lock.h>

#define TRUE 1
#define OK 0
#define FEHLER -1

extern void perror();

int main()
{

switch (plock(PROCLOCK)) /* Text- und Datensegment werden arretiert */
{
case OK:
printf("Prozess jetzt speicherresident.\n");
printf("In der Spalte F von \"ps -el\"");
printf(" kennzeichnet die 1 auf der Einerstelle,\n");
printf("dass der Prozess speicherresident ist.\n");
system("ps -el | grep \" F S\"");
system("ps -el | grep plock");
printf(" A\n !\n !\n");

break;

case FEHLER:
perror("plock()");
return(1);

default:
printf("???\n");
return(1);
}

switch (plock(UNLOCK)) /* Arretierung wird aufgehoben. */
{
case OK:
printf("Prozess nicht mehr speicherresident.\n");
system("ps -el | grep \" F S\"");
system("ps -el | grep plock");
printf(" A\n !\n !\n");
break;

case FEHLER:
perror("plock()");
return(1);

default:
printf("???\n");
return(1);
}

return(0);

}
Kann mir da jemand vielleicht helfen...?

peschmae
29-06-2005, 16:03
Das gibts unter Linux nicht, die Funktionen. Scheint laut g00gle (Free)BSD-Only zu sein.

Da müsstest du schon nach Linux-spezifischen Alternativen suche die was gleiches machen (kenne ich jetzt gerade nicht - dürfte es aber schong eben).

MfG Peschmä

Abraxas
30-06-2005, 22:09
Danke für die Antworten!

Dann ist es wohl besser, wenn ich das von Grund auf neu mache...

Joghurt
30-06-2005, 23:34
Was willst du denn machen? Evtl. hilft dir mlock(2) weiter