Als «c» getaggte Fragen

C ist eine universelle Computerprogrammiersprache, die für Betriebssysteme, Spiele und andere Hochleistungsarbeiten verwendet wird und sich deutlich von C ++ unterscheidet. Es wurde 1972 von Dennis Ritchie für die Verwendung mit dem Unix-Betriebssystem entwickelt.


10
Warum enthält argv den Programmnamen?
Typische Unix / Linux-Programme akzeptieren die Kommandozeilen-Eingaben als Argument count ( int argc) und als Argument vector ( char *argv[]). Das erste Element von argvist der Programmname, gefolgt von den eigentlichen Argumenten. Warum wird der Programmname als Argument an die ausführbare Datei übergeben? Gibt es Beispiele für Programme, die ihren …


4
Warum gibt ein Programm mit fork () seine Ausgabe manchmal mehrmals aus?
In Programm 1 Hello worldwird nur einmal gedruckt, aber wenn ich es entferne \nund ausführe (Programm 2), wird die Ausgabe 8 Mal gedruckt. Kann mir bitte jemand erklären, welche Bedeutung das \nhier hat und wie sich das auswirkt fork()? Programm 1 #include <sys/types.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> int …
50 c  fork 

6
Welche C-Bibliotheksversion verwendet mein System?
Wie kann ich sicher sagen, welche userland C-Bibliothek mein System verwendet? Mögliche Gründe für die Verwendung dieser Informationen sind: Es gibt ein gigantisches Quellcode-Paket, das ich herunterladen möchte. Ich bin sicher, dass es ordnungsgemäße Überprüfungen durchführt und eine Mini-Bibliotheksversion auflistet. Ich bin besorgt über die ABI-Kompatibilität mit einigen Binärdateien von …

5
Wie kann ich alle Prozesse eines Benutzers mithilfe seiner UID beenden?
Ich möchte alle laufenden Prozesse eines bestimmten Benutzers entweder über ein Shell-Skript oder über systemeigenen Code auf einem Linux-System beenden. Muss ich das Verzeichnis / proc lesen und danach suchen? Irgendwelche Ideen? Gibt es eine dynamische Zuordnung der Pids unter UIDs in Linux? Ist das nicht in der Prozedur? Wenn …
41 c  linux  proc 

6
Wie kann ich eine Binärdatei als C / C ++ - String-Literal sichern?
Ich habe eine Binärdatei, die ich (vorübergehend zu Testzwecken) in meinen C-Quellcode aufnehmen möchte, damit ich den Dateiinhalt als C-String erhalten kann. \x01\x02\x03\x04 Ist das möglich, vielleicht mit den Hilfsprogrammen ododer hexdump? Auch wenn dies nicht erforderlich ist, wäre es noch angenehmer, wenn die Zeichenfolge alle 16 Eingabebytes in die …
39 c  hexdump  xxd 


2
Standardstapelgröße für Pthreads
Soweit ich weiß, beträgt die Standardstapelgröße für einen pthread unter Linux 16 KB. Ich erhalte merkwürdige Ergebnisse bei meiner 64-Bit-Ubuntu-Installation. $ ulimit -s 8192 Ebenfalls: pthread_attr_init(&attr); pthread_attr_getstacksize(&attr, &stacksize); printf("Thread stack size = %d bytes \n", stacksize); Prints Thread stack size = 8388608 bytes Ich bin mir ziemlich sicher, dass die …
24 c  multithreading 

3
Wie geht Copy-on-Write in fork () mit mehreren Forks um?
Laut Wikipedia (was falsch sein könnte) Bei einem Systemaufruf von fork () wird eine Kopie aller Seiten erstellt, die dem übergeordneten Prozess entsprechen, und vom Betriebssystem für den untergeordneten Prozess in einen separaten Speicherort geladen. In bestimmten Fällen ist dies jedoch nicht erforderlich. Betrachten Sie den Fall, dass ein Kind …
23 linux  c  fork 

2
Gewährleistet POSIX die Pfade zu Standarddienstprogrammen?
Was ist in C der einfachste Weg, um ein Standarddienstprogramm (z. B. ps) und kein anderes auszuführen? Gewährleistet POSIX, dass beispielsweise ein Standard vorhanden psist, /bin/psoder sollte ich die Umgebungsvariable PATH auf das zurücksetzen, was ich erhalte, confstr(_CS_PATH, pathbuf, n);und das Dienstprogramm dann über die PATH-Suche ausführen?
22 path  c  posix  exec 

4
Erstellen Sie eine Protokolldatei
Gibt es eine Möglichkeit, eine Protokolldatei zum Verwalten einiger Daten in / var / log / mit Hilfe einer Bibliotheksfunktion oder eines Systemaufrufs in der Sprache c unter Linux zu erstellen? Und ich möchte auch die Standards kennen, die wir zum Schreiben und Verarbeiten von Protokollen befolgen sollten. Vielen Dank
22 linux  logs  c  syslog 

4
Wo beginnt das Kind nach fork () mit der Ausführung?
Ich versuche UNIX-Programmierung zu lernen und bin auf eine Frage bezüglich fork () gestoßen. Ich verstehe, dass fork () einen identischen Prozess wie der aktuell ausgeführte Prozess erstellt, aber wo beginnt er? Zum Beispiel, wenn ich Code habe int main (int argc, char **argv) { int retval; printf ("This is …
22 process  c  fork  api 



Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.