linux.cのコンパイルエラーとstorage.cの修正 #33
読み込み中…
新しいイシューから参照
説明はありません。
ブランチ "haturatu/farfetch:master" の削除
ブランチの削除は恒久的です。 実際に削除されるまでの短い期間、ブランチが存在したままになることもありますが、たいていは元に戻すことはできません。 続行しますか?
ブランチの削除は恒久的です。 実際に削除されるまでの短い期間、ブランチが存在したままになることもありますが、たいていは元に戻すことはできません。 続行しますか?
コンパイルエラー
ifでzpoolコマンドがなかったときの戻り値127で判定してdf -hへの分岐を正常に行う
@ -27,3 +9,1 @@
return run_command_s("zpool list | "
"awk 'NR>1 {printf \"%s: %s / %s, \", $1, $3, $2}' | "
"awk '{sub(/, $/, \"\"); print}'");
if (excode != NULL && strcmp(excode, "127") == 0) {
セキュリティの為、
strcmp()
じゃなくて、strncmp()
をご利用下さい。strncmp(excode, "127", strlen("127"))
そうして、結果は数字ですので、「LC_ALL=C」が不要になりました。
@ -30,0 +10,4 @@
return run_command_s("df -h | "
"awk '/^\\/dev\\// {printf \"%s: %s / %s, \", $1, $3, $2}' | "
"awk '{sub(/, $/, \"\"); print}'");
} else {
if
でreturn
を使ったら、else {}
を書く事が必要はありません。@ -28,2 +9,2 @@
"awk 'NR>1 {printf \"%s: %s / %s, \", $1, $3, $2}' | "
"awk '{sub(/, $/, \"\"); print}'");
if (excode != NULL && strcmp(excode, "127") == 0) {
return run_command_s("df -h | "
この returnの行列の前に、free((void *)excode);を追加して下さい。
あたしも忘れましたが、それがメモリリークを避ける為です。
所で、free()を使うには、#include <stdlib.h>も追加する事が必要です。
@ -30,0 +16,4 @@
strncmp(iszfs, "sh: zpool: not found", strlen("sh: zpool: not found")) == 0 ||
strncmp(iszfs, "sh: 1: zpool: not found", strlen("sh: 1: zpool: not found")) == 0
) {
return run_command_s("df -h | "
excode
で既にzpoolコマンドが存在するかどうか確認しましたので、const char *iszfs...
から} else {
まで削除しては良いです。そうして、この
return
の行列の前に、free((void *)excode);
を追加して下さい。あたしも忘れましたが、それがメモリリークを避ける為です。
所で、
free()
を使うには、#include <stdlib.h>
も追加する事が必要です。@ -398,3 +398,3 @@
LOGO_SMALL[i] = GREEN " " RESET;
}
} else if (strncmp(char *)distroname, "opensuse", strlen("opensuse")) == 0) {
} else if (strncmp((char *)distroname, "opensuse", strlen("opensuse")) == 0) {
所で、あたしが忘れましたが、この「opensuse」は「ubuntu」に変更出来ますか?
@ -26,0 +12,4 @@
return run_command_s("df -h | "
"awk '/^\\/dev\\// {printf \"%s: %s / %s, \", $1, $3, $2}' | "
"awk '{sub(/, $/, \"\"); print}'");
} else {
また、
else
は不要です。excode != NULL && (strncmp(excode, "127", strlen("127")) == 0)
がtrue
だったら、return
の後で何も実効していませんので、} else {
から}
に変更して下さい。ロリ神様ありがとう!!!!
昨日寝落ちしながらでしたけど楽しい時間でした
@ -23,3 +8,1 @@
"awk '/^\\/dev\\// {printf \"%s: %s / %s, \", $1, $3, $2}' | "
"awk '{sub(/, $/, \"\"); print}'");
}
const char *excode = run_command_s("zpool list 2>/dev/null || echo $?");
タブじゃなくて、2スペースでインデントして下さい。
@ -25,1 +8,3 @@
}
const char *excode = run_command_s("zpool list 2>/dev/null || echo $?");
if (
excode != NULL && (strncmp(excode, "127", strlen("127")) == 0)) {
if (excode != NULL && (strncmp(excode, "127", strlen("127")) == 0)) {
は88文字以内ですので、1行列にして下さい。直します!
FreeBSDについて、
pciconf -lv
とsysctl -n hw.model
の結果を教えてくれませんか?確かに正しくないらしい・・・
実機だと今ThinkPad X240にFreeBSD入れているので試してみますね
コレはVultr VPSです
#sysctl -n hw.model
Intel Core Processor (Broadwell, no TSX, IBRS)
# pciconf -lv
FreeBSD 13.2-RELEASE releng/13.2-n254617-525ecfdad597 GENERIC
Welcome to FreeBSD!
Release Notes, Errata: https://www.FreeBSD.org/releases/
Security Advisories: https://www.FreeBSD.org/security/
FreeBSD Handbook: https://www.FreeBSD.org/handbook/
FreeBSD FAQ: https://www.FreeBSD.org/faq/
Questions List: https://www.FreeBSD.org/lists/questions/
FreeBSD Forums: https://forums.FreeBSD.org/
Documents installed with the system are in the /usr/local/share/doc/freebsd/
directory, or can be installed later with: pkg install en-freebsd-doc
For other languages, replace "en" with a language code like de or fr.
Show the version of FreeBSD installed: freebsd-version ; uname -a
Please include that output and any error messages when posting questions.
Introduction to manual pages: man man
FreeBSD directory layout: man hier
To change this login announcement, see motd(5).
root@vultr:~ # pciconf -lv
hostb0@pci0:0:0:0: class=0x060000 rev=0x02 hdr=0x00 vendor=0x8086 device=0x1237 subvendor=0x1af4 subdevice=0x1100
vendor = 'Intel Corporation'
device = '440FX - 82441FX PMC [Natoma]'
class = bridge
subclass = HOST-PCI
isab0@pci0:0:1:0: class=0x060100 rev=0x00 hdr=0x00 vendor=0x8086 device=0x7000 subvendor=0x1af4 subdevice=0x1100
vendor = 'Intel Corporation'
device = '82371SB PIIX3 ISA [Natoma/Triton II]'
class = bridge
subclass = PCI-ISA
atapci0@pci0:0:1:1: class=0x010180 rev=0x00 hdr=0x00 vendor=0x8086 device=0x7010 subvendor=0x1af4 subdevice=0x1100
vendor = 'Intel Corporation'
device = '82371SB PIIX3 IDE [Natoma/Triton II]'
class = mass storage
subclass = ATA
uhci0@pci0:0:1:2: class=0x0c0300 rev=0x01 hdr=0x00 vendor=0x8086 device=0x7020 subvendor=0x1af4 subdevice=0x1100
vendor = 'Intel Corporation'
device = '82371SB PIIX3 USB [Natoma/Triton II]'
class = serial bus
subclass = USB
intsmb0@pci0:0:1:3: class=0x068000 rev=0x03 hdr=0x00 vendor=0x8086 device=0x7113 subvendor=0x1af4 subdevice=0x1100
vendor = 'Intel Corporation'
device = '82371AB/EB/MB PIIX4 ACPI'
class = bridge
vgapci0@pci0:0:2:0: class=0x030000 rev=0x02 hdr=0x00 vendor=0x1234 device=0x1111 subvendor=0x1af4 subdevice=0x1100
class = display
subclass = VGA
virtio_pci0@pci0:0:3:0: class=0x020000 rev=0x00 hdr=0x00 vendor=0x1af4 device=0x1000 subvendor=0x1af4 subdevice=0x0001
vendor = 'Red Hat, Inc.'
device = 'Virtio network device'
class = network
subclass = ethernet
hdac0@pci0:0:4:0: class=0x040300 rev=0x03 hdr=0x00 vendor=0x8086 device=0x293e subvendor=0x1af4 subdevice=0x1100
vendor = 'Intel Corporation'
device = '82801I (ICH9 Family) HD Audio Controller'
class = multimedia
subclass = HDA
virtio_pci1@pci0:0:5:0: class=0x010000 rev=0x00 hdr=0x00 vendor=0x1af4 device=0x1001 subvendor=0x1af4 subdevice=0x0002
vendor = 'Red Hat, Inc.'
device = 'Virtio block device'
class = mass storage
subclass = SCSI
virtio_pci2@pci0:0:6:0: class=0x00ff00 rev=0x00 hdr=0x00 vendor=0x1af4 device=0x1002 subvendor=0x1af4 subdevice=0x0005
vendor = 'Red Hat, Inc.'
device = 'Virtio memory balloon'
class = old
virtio_pci3@pci0:0:7:0: class=0x00ff00 rev=0x00 hdr=0x00 vendor=0x1af4 device=0x1005 subvendor=0x1af4 subdevice=0x0004
vendor = 'Red Hat, Inc.'
device = 'Virtio RNG'
class = old
none0@pci0:0:8:0: class=0x088000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x25ab subvendor=0x1af4 subdevice=0x1100
vendor = 'Intel Corporation'
device = '6300ESB Watchdog Timer'
class = base peripheral
X240は問題無いですね、と思いきやメモリ表示がおかしい・・・?
VPS上のFreeBSDの表示がおかしいことは前もneofetchか他のものでも起きていた覚えがあります
#sysctl -n hw.model
Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz
#pciconf -lv
hostb0@pci0:0:0:0: class=0x060000 rev=0x0b hdr=0x00 vendor=0x8086 device=0x0a04 subvendor=0x17aa subdevice=0x2214
vendor = 'Intel Corporation'
device = 'Haswell-ULT DRAM Controller'
class = bridge
subclass = HOST-PCI
vgapci0@pci0:0:2:0: class=0x030000 rev=0x0b hdr=0x00 vendor=0x8086 device=0x0a16 subvendor=0x17aa subdevice=0x2214
vendor = 'Intel Corporation'
device = 'Haswell-ULT Integrated Graphics Controller'
class = display
subclass = VGA
hdac0@pci0:0:3:0: class=0x040300 rev=0x0b hdr=0x00 vendor=0x8086 device=0x0a0c subvendor=0x17aa subdevice=0x2214
vendor = 'Intel Corporation'
device = 'Haswell-ULT HD Audio Controller'
class = multimedia
subclass = HDA
xhci0@pci0:0:20:0: class=0x0c0330 rev=0x04 hdr=0x00 vendor=0x8086 device=0x9c31 subvendor=0x17aa subdevice=0x2214
vendor = 'Intel Corporation'
device = '8 Series USB xHCI HC'
class = serial bus
subclass = USB
none0@pci0:0:22:0: class=0x078000 rev=0x04 hdr=0x00 vendor=0x8086 device=0x9c3a subvendor=0x17aa subdevice=0x2214
vendor = 'Intel Corporation'
device = '8 Series HECI'
class = simple comms
em0@pci0:0:25:0: class=0x020000 rev=0x04 hdr=0x00 vendor=0x8086 device=0x155a subvendor=0x17aa subdevice=0x2214
vendor = 'Intel Corporation'
device = 'Ethernet Connection I218-LM'
class = network
subclass = ethernet
hdac1@pci0:0:27:0: class=0x040300 rev=0x04 hdr=0x00 vendor=0x8086 device=0x9c20 subvendor=0x17aa subdevice=0x2214
vendor = 'Intel Corporation'
device = '8 Series HD Audio Controller'
class = multimedia
subclass = HDA
pcib1@pci0:0:28:0: class=0x060400 rev=0xe4 hdr=0x01 vendor=0x8086 device=0x9c1a subvendor=0x17aa subdevice=0x2214
vendor = 'Intel Corporation'
device = '8 Series PCI Express Root Port 6'
class = bridge
subclass = PCI-PCI
pcib2@pci0:0:28:1: class=0x060400 rev=0xe4 hdr=0x01 vendor=0x8086 device=0x9c14 subvendor=0x17aa subdevice=0x2214
vendor = 'Intel Corporation'
device = '8 Series PCI Express Root Port 3'
class = bridge
subclass = PCI-PCI
ehci0@pci0:0:29:0: class=0x0c0320 rev=0x04 hdr=0x00 vendor=0x8086 device=0x9c26 subvendor=0x17aa subdevice=0x2214
vendor = 'Intel Corporation'
device = '8 Series USB EHCI'
class = serial bus
subclass = USB
isab0@pci0:0:31:0: class=0x060100 rev=0x04 hdr=0x00 vendor=0x8086 device=0x9c43 subvendor=0x17aa subdevice=0x2214
vendor = 'Intel Corporation'
device = '8 Series LPC Controller'
class = bridge
subclass = PCI-ISA
ahci0@pci0:0:31:2: class=0x010601 rev=0x04 hdr=0x00 vendor=0x8086 device=0x9c03 subvendor=0x17aa subdevice=0x2214
vendor = 'Intel Corporation'
device = '8 Series SATA Controller 1 [AHCI mode]'
class = mass storage
subclass = SATA
ichsmb0@pci0:0:31:3: class=0x0c0500 rev=0x04 hdr=0x00 vendor=0x8086 device=0x9c22 subvendor=0x17aa subdevice=0x2214
vendor = 'Intel Corporation'
device = '8 Series SMBus Controller'
class = serial bus
subclass = SMBus
rtsx0@pci0:2:0:0: class=0xff0000 rev=0x01 hdr=0x00 vendor=0x10ec device=0x5227 subvendor=0x17aa subdevice=0x2214
vendor = 'Realtek Semiconductor Co., Ltd.'
device = 'RTS5227 PCI Express Card Reader'
iwm0@pci0:3:0:0: class=0x028000 rev=0x6b hdr=0x00 vendor=0x8086 device=0x08b2 subvendor=0x8086 subdevice=0xc262
vendor = 'Intel Corporation'
device = 'Wireless 7260'
class = network
top | grep "Mem:"
とtop | grep "ARC:"
を実行したら、何を見えマスか?$ top | grep "Mem:"
Mem: 481M Active, 474M Inact, 8844K Laundry, 750M Wired, 5823M Free
$ top | grep "ARC:"
ARC: 352M Total, 138M MFU, 206M MRU, 1635K Header, 6142K Other
$
現状気になるOSで検証行ったほうがいいモノはありますか?
主にDragonfly BSD、Haiku、Minixで助けられます。
macOSは既に検証中です。
土日で試してみますね