EnglischFranzösischSpanisch

OnWorks-Favicon

pmcpp – Online in der Cloud

Führen Sie pmcpp im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl pmcpp, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


pmcpp - einfacher Präprozessor für den Performance Co-Pilot

ZUSAMMENFASSUNG


pmcpp [-Prs] [-D Name[=Wert] ...] [-I dir ...] [im Ordner]

BESCHREIBUNG


pmcpp stellt einen sehr einfachen Vorprozessor bereit, der ursprünglich für die Manipulation entwickelt wurde
PMNS-Dateien (Performance Metric Name Space) für den Performance Co-Pilot (PCP), jedoch später
Verallgemeinert, um bedingte Blöcke bereitzustellen, Dateiverarbeitung und Inline-Shell-Befehle einzuschließen
Ausführung und Makroersetzung für beliebige Dateien. Es wird am häufigsten intern angewendet
um die PMNS-Datei(en) anschließend zu verarbeiten pmLoadNameSpace(3) oder pmLoadASCIINameSpace(3) heißt
und um die Konfigurationsdateien für vorzuverarbeiten PMlogger(1).

Eingabezeilen werden gelesen im Ordner (oder Standardeingabe, wenn im Ordner wird nicht angegeben), verarbeitet
und auf die Standardausgabe geschrieben.

Alle Kommentare im C-Stil der Form /* ... */ werden aus dem Eingabestream entfernt.

Es gibt keine vordefinierten Makros für pmcpp obwohl Makros für den Befehl definiert werden können
Zeile mit der -D Option, wo Name und Wert müssen die gleichen Regeln wie beschrieben befolgen
unten für die #define Richtlinie.

pmcpp akzeptiert die folgenden Anweisungen im Eingabestream (wie cpp(1)):

· #einschließen "Dateinamen"
or
#einschließen <Dateinamen>
In beiden Fällen der Verzeichnissuchpfad für Dateinamen versucht Dateinamen zuerst, dann die
Verzeichnis für die Befehlszeile im Ordner (falls vorhanden), gefolgt von den darin genannten Verzeichnissen -I
Befehlszeilenargumente und schließlich die $PCP_VAR_DIR/pmns Verzeichnis (Letzteres ist für
Abwärtskompatibilität mit früheren Versionen von pmcpp und die implizite Verwendung von
pmLoadASCIINameSpace(3)). #einschließen Direktiven können bis zu einer maximalen Tiefe von verschachtelt werden
5.

· #Hülse "Befehl"
or
#Hülse 'Befehl'
Dem Schale Befehl wird ausgeführt und die Standardausgabe wird in den Stream eingefügt
der zu verarbeitenden Daten pmcpp. Funktionell ähnelt dies a #einschließen
Direktive, außer dass Eingabezeilen aus a gelesen werden Befehl statt einer Datei. Der #Hülse
Die Direktive ist am nützlichsten zum Einschließen oder Ausschließen #define or #undef auf Richtlinien basierend
zur Laufzeitlogik in der Befehl.

· #define Name Wert
or
#define Name "Wert"
or
#define Name 'Wert'
Definiert einen Wert für das Makro Name Dies muss ein gültiger Name im C-Stil sein, also führend
alphabetisch oder Unterstrich, gefolgt von null oder mehr alphanumerischen Zeichen oder Unterstrichen. Wert
ist optional (und ist standardmäßig eine leere Zeichenfolge). Es gibt keinen Zeichen-Escape-Mechanismus.
Es können jedoch sowohl einfache als auch doppelte Anführungszeichen verwendet werden, um a zu definieren Wert mit besonderem
Zeichen oder eingebetteter horizontaler Leerraum (keine Zeilenumbrüche).

· #undef Name
Entfernt die Makrodefinition, falls vorhanden, für Name.

· #ifdef Name
...
#endif
or
#ifndef Name
...
#endif
Die umschließenden Linien werden je nach Makro entfernt oder eingefügt Name is
definiert oder nicht.

· #else
Innerhalb eines #ifdef or #ifndef Block, #else kann verwendet werden, um einzuschließende Zeilen abzugrenzen, wenn
Die vorhergehende „Wenn“-Bedingung ist falsch.

Die Makrosubstitution wird erreicht, indem der Eingabestrom in durch Weiß getrennte Wörter aufgeteilt wird
Leerzeichen oder Zeichen, die in einem Makronamen nicht gültig sind, also nicht alphanumerisch sind und nicht
unterstreichen. Jedes Wort wird überprüft und wenn es mit einem Makronamen übereinstimmt, wird das Wort durch ersetzt
der Makrowert, andernfalls bleibt das Wort unverändert.

Im Allgemeinen gibt es für jede Eingabezeile eine Ausgabezeile, obwohl die Zeile ggf. leer sein kann
Der Text wurde aufgrund der Behandlung von Kommentaren oder bedingten Anweisungen entfernt.
Bei einer Änderung im Eingabestream wird eine zusätzliche Ausgabezeile generiert
bilden:

# lineno „Dateiname“

um die anzuzeigen Folgende Die Ausgabezeile entspricht der Zeilennummer Linie Nr der Eingabe
Datei Dateinamen.

Dem -P Das Argument unterdrückt die Generierung dieser Linienmarkierungslinien.

Dem -s Das Argument ändert den erwarteten Eingabestil von C-ähnlich zu Shell-ähnlich (wobei # ein
Kommentarpräfix). Dies erzwingt die folgenden Änderungen pmcpp Verhalten:
· Das Steuerpräfixzeichen ändert sich von # zu %, damit %enthalten zum Beispiel.
· Es wird keine Kommentarentfernung durchgeführt.

Um eine genauere Kontrolle der Makroerweiterung zu ermöglichen, ist die -r Option beschränkt die Makroersetzung auf
Wörter, die den Mustern entsprechen #Name oder #{Name} oder wenn -s angegeben ist, dann %Name oder
%{Name}. In diesem Modus ist das Makro Name Allein im Eingabestrom wird es nie erweitert,
jedoch in Steuerleitungen (wie #ifdef) das Makro Name sollte alleine ohne erscheinen
Präfixzeichen oder die geschweiften Klammern (siehe BEISPIELE unten).

Wichtig cpp(1) Merkmale, die sind nicht unterstützt durch pmcpp umfasst:
· Makros mit Parametern – die pmcpp Makros unterstützen nur Parameterlose Zeichenfolgen
Auswechslung.
· #wenn ausdr
...
#endif
· Verschachtelte Verwendung von #ifdef or #ifndef.
· Entfernen von Kommentaren im C++-Stil, wie in // Kommentar.
· Fehlerbehebung – der erste Fehler, auf den gestoßen ist pmcpp wird tödlich sein.
· cpp(1) Befehlszeilenoptionen wie -o, -W, -U und -x.

Beispiele:


┌─────────────────────────────────────── ──────┐
│Befehl: pmcpp
├───────────────────────┬─────────────── ──────┤
EingangAusgang
├───────────────────────┼─────────────── ──────┤
│ │ # 1 " " │
│#define MYDOMAIN 27 │ │
│ │ │
│root { │ root { │
│ foo MYDOMAIN:0:0 │ foo 27:0:0 │
│} │ } │
└───────────────────────┴─────────────── ──────┘
Für die folgenden Beispiele ist die Datei Frequenzen enthält die Zeilen:
%define dk_freq 1 Minute
%define cpu_freq '15 Sek.'

┌─────────────────────────────────────── ────────── ─────────────────────┐
│Befehl: pmcpp -rs
├──────────────────────────────────┬──── ────────── ─────────────────────┤
EingangAusgang
├──────────────────────────────────┼────────────── ─────────────────────┤
│# Protokollierungshäufigkeiten abrufen │ # Protokollierungshäufigkeiten abrufen │
│# zB dk_freq-Makro │ # zB dk_freq-Makro │
│%include „Frequenzen“ │ │
│ │ │
│Protokollierung obligatorisch bei %dk_freq { │Protokollierung obligatorisch bei 1 Minute { │
│ disk.dev │ disk.dev │
│} │ } │
│ │ │
│# notieren Sie hier kein % für want_cpu │ # notieren Sie hier kein % für want_cpu │
│%ifdef want_cpu │ │
│%define cpu_pfx 'kernel.all.cpu.' │ │
│Protokoll obligatorisch auf %cpu_freq { │ │
│ %{cpu_pfx}Benutzer │ │
│ %{cpu_pfx}sys │ │
│} │ │
│%endif │ │
└──────────────────────────────────┴────────────── ─────────────────────┘
┌─────────────────────────────────────── ────────── ─────────────────────┐
│Befehl: pmcpp -rs -Dwant_cpu
├──────────────────────────────────┬──── ────────── ─────────────────────┤
EingangAusgang
├──────────────────────────────────┼────────────── ─────────────────────┤
│# Protokollierungshäufigkeiten abrufen │ # Protokollierungshäufigkeiten abrufen │
│# zB dk_freq-Makro │ # zB dk_freq-Makro │
│%include „Frequenzen“ │ │
│ │ │
│Protokollierung obligatorisch bei %dk_freq { │Protokollierung obligatorisch bei 1 Minute { │
│ disk.dev │ disk.dev │
│} │ } │
│ │ │
│# notieren Sie hier kein % für want_cpu │ # notieren Sie hier kein % für want_cpu │
│%ifdef want_cpu │ │
│%define cpu_pfx 'kernel.all.cpu.' │ │
│Protokollierung obligatorisch bei %cpu_freq { │Protokollierung obligatorisch bei 15 Sek. { │
│ %{cpu_pfx}user │ kernel.all.cpu.user │
│ %{cpu_pfx}sys │ kernel.all.cpu.sys │
│} │ } │
│%endif │ │
└──────────────────────────────────┴────────────── ─────────────────────┘

CFP


Umgebungsvariablen mit dem Präfix PCP_ werden verwendet, um die Datei und das Verzeichnis zu parametrieren
Namen, die von PCP verwendet werden. Bei jeder Installation wird die Datei /etc/pcp.conf enthält die lokalen Werte
für diese Variablen. Die $PCP_CONF Variable kann verwendet werden, um eine Alternative anzugeben
Konfigurationsdatei, wie in . beschrieben pcp.conf(5).

Verwenden Sie pmcpp online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad