uname là một phiên bản đặc biệt của uname. Hỗ trợ -a, -s, -r, -n, -v, -m tùy chọn.
SỬ DỤNG: uname [tùy chọn]
-s In tên kernel
-v In phiên bản kernel
-r In việc phát hành hạt nhân
-n In các node mạng hostname
-m In tên phần cứng máy tính
-a In tất cả các bên trên
Nếu không có lựa chọn, uname hoạt động như -s uname
Mẫu:
#include
#include
#include
#include
#include
khoảng trống print_usage (void);
int main (int argc, char * argv [])
{
int c;
extern char * tOPTARG;
extern int tOPTIND, optopt;
int a_flag = 0, s_flag = 0, n_flag = 0, r_flag = 0, v_flag = 0,
m_flag = 0;
int errflag = 0;
char host [256];
UTS struct utsname;
if (gethostname (host, 255)! = 0 || uname (& UTS) <0)
{
fprintf (stderr, "Không thể có được chủ informationn");
xuất cảnh (1);
}
/ * Nếu không có tùy chọn, sau đó chỉ cần in SysName * /
if (argc == 1) {
s_flag = 1;
}
khác
{
while ((c = getopt (argc, argv, "asnrvm"))! = -1)
{
switch (c) {
trường hợp 'a':
a_flag = 1;
phá vỡ;
trường hợp 's':
s_flag = 1;
phá vỡ;
trường hợp 'n':
n_flag = 1;
phá vỡ;
case 'r':
r_flag = 1;
phá vỡ;
trường hợp 'v':
v_flag = 1;
phá vỡ;
trường hợp 'm':
m_flag = 1;
phá vỡ;
trường hợp '?':
errflag ++;
phá vỡ;
}
}
}
/ * Phải có một hoặc lựa chọn sai lầm nữa trôi qua -
in thông tin sử dụng và thoát * /
if (errflag! = 0)
{
print_usage ();
xuất cảnh (1);
}
char * SysName, * máy, * nodename, * phát hành, phiên bản *;
SysName = uts.sysname;
máy = uts.machine;
nodename = uts.nodename;
phát hành = uts.release;
version = uts.version;
if (a_flag == 1) {
printf ("% s% s% s% s% sn", SysName, nodename, phát hành, phiên bản,
máy);
}
khác
{
char * printstring;
/ * Cấp đủ không gian cho tất cả các tình huống có thể .... * /
printstring = (char *) malloc (strlen (SysName) +
strlen (phiên bản) +
strlen (phát hành) +
strlen (nodename) +
strlen (máy) 6);
strcpy (printstring, "");
if (s_flag == 1) {
strcat (printstring, SysName);
strcat (printstring, "");
}
if (n_flag == 1) {
strcat (printstring, nodename);
strcat (printstring, "");
}
if (r_flag == 1) {
strcat (printstring, phát hành);
strcat (printstring, "");
}
if (v_flag == 1) {
strcat (printstring, phiên bản);
strcat (printstring, "");
}
if (m_flag == 1) {
strcat (printstring, máy);
strcat (printstring, "");
}
puts (printstring);
miễn phí (printstring);
}
return 0;
}
khoảng trống print_usage (void)
{
char * sử dụng [] = {"uname - (C) 2004 Kevin Waldron",
"Được phân phối theo các điều khoản của Giấy phép Công cộng GNU General",
"USAGE:", "uname [tùy chọn]",
"-S In tên hạt nhân",
"-v In phiên bản hạt nhân",
"-r In việc phát hành hạt nhân",
"-n In các node mạng hostname",
"-M In tên phần cứng máy tính",
"-a In tất cả các bên trên",
"", "Nếu không có lựa chọn, uname hoạt động như -s uname"};
int i = 0;
for (i = 0; i <12; i ++)
{
printf ("% sn", * (sử dụng + i));
}
}
Các chi tiết về phần mềm:
Phiên bản: 0.1
Ngày tải lên: 2 Jun 15
Giấy phép: Miễn phí
Phổ biến: 6
Bình luận không