uname είναι μια ειδική έκδοση του uname. Υποστηρίζει -a, -s, -r, -n, -v, -m επιλογές.
ΧΡΗΣΗ: uname [επιλογές]
-S Εκτυπώστε το όνομα του πυρήνα
-v Εκτυπώστε την έκδοση του πυρήνα
-r Εκτυπώστε την απελευθέρωση του πυρήνα
-n Εκτυπώστε το δίκτυο κόμβο όνομα
-m Εκτυπώστε το όνομα του υλικού μηχανή
-a Εκτύπωση όλα τα παραπάνω
Χωρίς επιλογές, uname λειτουργεί σαν uname -s
Δείγμα:
#include
#include
#include
#include
#include
void print_usage (άκυρο)?
int main (int argc, char * argv [])
{
int c?
extern char * OPTARG?
extern optind int, optopt?
int a_flag = 0, s_flag = 0, n_flag = 0, r_flag = 0, v_flag = 0,
m_flag = 0?
int errflag = 0?
υποδοχής char [256]?
UTS struct utsname?
εάν (gethostname (host, 255)! = 0 || uname (& UTS) <0)
{
fprintf (stderr, "Ανίκανος να πάρει informationn υποδοχής")?
εξόδου (1)?
}
/ * Εάν δεν υπάρχουν εναλλακτικές λύσεις, τότε μπορείτε να τυπώσετε sysname * /
if (argc == 1) {
s_flag = 1?
}
αλλιώς
{
ενώ η ((c = getopt (argc, argv, "asnrvm"))! = -1)
{
διακόπτη (γ) {
περίπτωση «α»:
a_flag = 1?
σπάσει?
περίπτωση «S»:
s_flag = 1?
σπάσει?
περίπτωση 'n':
n_flag = 1?
σπάσει?
περίπτωση «R»:
r_flag = 1?
σπάσει?
υπόθεση «V»:
v_flag = 1?
σπάσει?
περίπτωση «Μ»:
m_flag = 1?
σπάσει?
περίπτωση; »:
errflag ++?
σπάσει?
}
}
}
/ * Πρέπει να έχει μία ή περισσότερες λανθασμένες επιλογές που δίνονται -
Εκτύπωση πληροφορίες χρήσης και την έξοδο * /
εάν (errflag! = 0)
{
print_usage ()?
εξόδου (1)?
}
char * sysname, * μηχανής, * NodeName, * την απελευθέρωση, * την έκδοση?
sysname = uts.sysname?
μηχάνημα = uts.machine?
NodeName = uts.nodename?
αφήστε = uts.release?
version = uts.version?
εάν (a_flag == 1) {
printf ("% s% s% s% s% SN», sysname, NodeName, απελευθέρωση, έκδοση,
μηχανή)?
}
αλλιώς
{
char * printstring?
/ * Διαθέσουν αρκετό χώρο για όλα τα ενδεχόμενα .... * /
printstring = (char *) malloc (strlen (sysname) +
strlen (έκδοση) +
strlen (απελευθέρωση) +
strlen (NodeName) +
strlen (μηχάνημα) 6)?
strcpy (printstring, "")?
εάν (s_flag == 1) {
strcat (printstring, sysname)?
strcat (printstring, "")?
}
εάν (n_flag == 1) {
strcat (printstring, NodeName)?
strcat (printstring, "")?
}
εάν (r_flag == 1) {
strcat (printstring, απελευθέρωση)?
strcat (printstring, "")?
}
εάν (v_flag == 1) {
strcat (printstring, έκδοση)?
strcat (printstring, "")?
}
εάν (m_flag == 1) {
strcat (printstring, μηχανή)?
strcat (printstring, "")?
}
puts (printstring)?
ελεύθερο (printstring)?
}
return 0?
}
void print_usage (void)
{
char χρήση * [] = {"uname - (C) 2004 Κέβιν Waldron»,
"Διανέμεται υπό τους όρους της GNU General Public Licence»,
"ΧΡΗΣΗ:", "uname [επιλογές]",
"-S Εκτυπώστε το όνομα του πυρήνα»,
"-v Εκτυπώστε την έκδοση του πυρήνα»,
"-R Εκτυπώστε την απελευθέρωση του πυρήνα»,
"-n Εκτυπώστε το δίκτυο κόμβο όνομα»,
"-m Εκτυπώστε το όνομα του υλικού μηχανή»,
"-Α Εκτύπωση όλα τα παραπάνω»,
"", "Χωρίς επιλογές, uname λειτουργεί σαν uname -s"}?
int i = 0?
για (i = 0? i <12? θ ++)
{
printf ("% SN», * (χρήση + i))?
}
}
Στοιχεία Λογισμικού:
Εκδοχή: 0.1
Ανεβάστε ημερομηνία: 2 Jun 15
Άδεια: Δωρεάν
Δημοτικότητα: 40
Τα σχόλια δεν βρέθηκε