2025年1月
 1234
567891011
12131415161718
19202122232425
262728293031  

カテゴリー

アーカイブ

ブログ統計情報

  • 103,847 アクセス


AS5202T 再セットアップ

やっとこの NAS 用の HDD が届いたのでもう一度最初からセットアップ.


今ある WD Red 1TB を外すために AS5202T をシャットダウン.
前回と同様 で「初期化されていません」を押して,画面の指示に従ってインストール.
今回は最初のインストールでは何も入れなかったので,Web サーバなども起動していない.
Web サーバの有効化
他に SSH なども有効になる様に設定.


SSH で接続しようとすると,

Microsoft Windows [Version 10.0.18362.720]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\Iwao>cd %TMP%

C:\Users\Iwao\AppData\Local\Temp>ssh -l Iwao -p 22 192.168.1.75
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:7Hi9lqmKbdEhkCwGwU4j0fjj/PQCNQBfnNCIHKMACZA.
Please contact your system administrator.
Add correct host key in C:\\Users\\Iwao/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in C:\\Users\\Iwao/.ssh/known_hosts:16
ECDSA host key for 192.168.1.75 has changed and you have requested strict checking.
Host key verification failed.

C:\Users\Iwao\AppData\Local\Temp>

c:\Users\Iwao\.ssh\known_hosts を編集(192.168.1.75 の行を削除)して対応.


ここまでやっていろいろ見ていると,間違いを発見.RAID 0 になっている.
AS5202T RAID0
「設定」-「工場出荷時設定」-「システム初期化」でもう一度やり直し.
システム初期化
「ワンクリックセットアップ」の画面で「バランスが取れている」を選択する必要があった.
ワンクリックセットアップ バランスが取れている
「最大容量」だと RAID 0 .RAID 1 は「バランスが取れている」にする.


退避しておいた VHD などをコピー.
VirtualBox と entware をインストール.
VirtualBox DevX
SSH 接続で gcc のインストール.
opkg install gcc
これで gcc も使える様になった.


2020/04/05
その後いろいろ試していて,また VirtualBox が止まる?現象があった.
同じファイルを PC から起動するのはうまくできる.
先日バックアップした DevX.vdi をコピーし直して起動させたらうまくいった.
VNC 接続で時刻を表示させて見ていると,少し止まったようになることがある.
VirtualBox VNC 時刻の更新が止まる?


昨日 RAID 1 で再セットアップした後,ディスクが動いていたのでそのグラフ.
AS5202T RAID 1 ディスク


https://jml.mish.work/various/nas/asustor.html

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

AS5202T セットアップ – 6

DS116 からの WordPress の移行.
2017/01 は wordpress.com から DS115j に.2017/10 には DS115j から DS116 に移行している.
今回行うのは Synology NAS DS116 からで,どこまで動作する(移行できる)かのテスト.


DS116 側 の「ダッシュボード」で「ツール」-「エクスポート」.
Synology NAS WordPress エクスポート
「すべてのコンテンツ」を選んで「エクスポートファイルをダウンロード」.


AS5202T の「ダッシュボード」-「ツール」-「インポート」.
「WordPress」の所の「今すぐインストール」,「インポータの実行」.
「参照…」から xml ファイルを指定して「ファイルをアップロードしてインポート」すると,

WordPress のインポート
エラーが発生しました。
アップロードしたファイルは php.ini で定義された upload_max_filesize を超過しています。

PHP 7.3 php.ini の upload_max_filesize は 2M になっている.xml は 6.3MB .
php.ini を編集しようかとも思ったが,PHP 7 を無効にすると PHP 5.6 になり 10MB になっている.
もう一度,xml の「ファイルをアップロードしてインポート」.
「添付ファイルをダウンロードしてインポートする」にチェックをつけて「実行」.
添付ファイルをダウンロードしてインポート
時間は 30 分程度かかった.
AS5202T WordPress 移行


この記事を公開後,もう一度 Synology NAS で「エクスポート」,ASUSTOR NAS で「インポート」.
新しいこの記事は追加されるが,変更した以前の記事は反映されないみたい.
「All in One SEO Pack」プラグインを入れたタイミングかは不明だが,SEO 情報も移行できている.
xml には書かれているのでプラグインを入れた段階で反映されていたのかもしれない.


2022/01
php.ini を編集
WordPress の .htaccess で指定

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

AS5202T セットアップ – 5

先日 WordPress と Joomla! を入れたので,DS116 からの移行.
比較的簡単そうな Joomla! から.
検索すると J2XML というプラグインが出てくる.
使い方などは次の所に詳しく説明されている.
Joomla! 無料エクステンション『J2XML』で記事やカテゴリをエクスポート/インポート
インポートでうまくできなかった.
Cannot import a super user account [Super User].
Joomla! J2XML インポートエラー
エラーメッセージにある様に「Super User」を「はい」に変更.
Joomla! J2XML インポートの設定
「メニュー」などは反映されないので完全な切替はしばらく先になりそう.


2020/04/02
Synology NAS 側の記事を少し変更.
前回と同様に「エクスポート」,AS5020T の「インポート」でうまくいく.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

AS5202T セットアップ – 4

MariaDB が有効になっていることの確認
MariaDB の確認


WordPress のインストール
WordPress パッケージの選択
WordPress セットアップの開始
WordPress データベース情報の指定
WordPress サイト情報の設定
WordPress インストール完了


Joomla! のインストール
Joomla! パッケージの選択
Joomla! セットアップの開始
Joomla! サイト情報の設定
Joomla! データベースの設定
Joomla! インストール情報の確認
Joomla! インストール完了
Joomla! 言語のインストール
Joomla! 言語の設定
Joomla! Installation フォルダの削除


2021/04/09
1 年前に WordPress を一度入れたが,再セットアップ後は入れていなかった.
WordPres のインストール途中でエラー.
WordPress データベース接続確立エラー
WordPress データベース選択不可
phpMyAdmin で見るとデータベースがなかったので,wordpress の名称で作成.
WordPress  phpMyAdmin でデータベースの作成

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

AS5202T セットアップ – 3

SSH 接続を有効にするための設定
ADM の「サービス」-「端末」の「SSHサービスを有効にする」にチェック.
AS5202T  SSH 接続
Win10 のコマンドプロンプトで次の様に入力 すると入れる.
ssh -l Iwao -p 22 192.168.1.75


Linux 環境でよく使っているコマンド.以前 Synology NAS でも調べたもの.
zip ,unzip ,7z すべて存在する.
convert もあり.
shutdown はない.


Win10 から AS5202T にアクセス
Win10 から AS5202T にアクセス


標準で入る PHP は 5.6 みたい.
App Central で PHP 7 をインストールすることで 7.3 になった.
また「インストール済み」の「PHP 7」の ON/OFF で切り替え可能.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

AS5202T セットアップ – 2

先日の続き.
その後追加したもの.
アンチウィルスの ClamAV
他に Linux Center .使い勝手は思っていたものと少し違った.
マニュアルなどは次の所.
https://www.asustor.com/ja/service/downloads?product_id=61#document
https://www.asustor.com/app_central/?type=&model=52xx,53xx
AS5202T portal
DDNS の設定は ASUSTOR Data Master (ADM) の「設定」-「手動接続」にある.
「設定」-「手動設定」 DDNS
ASUSTOR の標準で用意されているものは「myasustor.com」.
IPv6 での設定はちょっとわからず.
次のリンクの様にアクセスできるようになる.
http://demosite.myasustor.com/


他にもいろいろ設定したいと思うが,場所やアプリがわからない.
Web 関係などはこの NAS 用に注文している HDD がそろってからの予定.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

AS5202T セットアップ

先日届いていた AS5202T .それ用の HDD を注文したら納期がかかるみたい.
それで手元にあった WD Red 1TB を取り付けてセットアップしてみた.
NAS に取り付ける時,斜めになってしまうことがあるので注意が必要.


最初に ASUSTOR コントロールセンター をダウンロードして PC にインストール.
ASUSTOR Control Center
「初期化されていません」を押して,画面の指示に従って ADM をインストール.
AS5202T 初期化 1
AS5202T 初期化 2
AS5202T 初期化 3
AS5202T Portal
Web もセットアップされていた.
AS5202T web


NAS が動作することは確認できたので,メモリを 8GB に取り換え.
電源を入れると,一番上の青いランプが点灯,システムステータスのランプが点滅のままでうまく起動しない.
通常であればネットワークやハードディスクのランプが点滅や点灯するはず.
もう一度メモリを外して元の 2GB の状態にするとうまく起動する.
追加で 1 枚さして 6GB でもうまく起動.
2GB も交換して 4GB x 2 の状態で試すとうまく起動した.
メモリの挿し方が甘かった?


今回この機種を追加した目的の一つが VirtualBox .
App Central から VirtualBox と VirtualBox Extension Pack をインストール.
追加された VirtualBox アイコンをクリックすると新しくブラウザのウィンドウが開く.
AS5202T VirtualBox ログイン
この時のログインの ID がわからなかったが admin と admin で入れる.
https://www.asustor.com/en/online/College_topic?topic=249
https://forest.watch.impress.co.jp/docs/shseri/siranas/1023605.html
https://mdw-note.net/tips/setting-virtualbox-as3102t/
以前 PC で作成した Win10_LTSC.vdi を NAS の Public/VHD/Win10_LTSC にコピー.
それを使用する様に VirtualBox の仮想マシンを追加.
追加した仮想マシンを起動すると右上にプレビューが表示されている.
AS5202T VirtualBox
この仮想マシンは VNC サーバの設定がしてあるので,VNC ビューアから接続.
AS5202T VirtualBox VNC 接続


もう一つ確認したのが gcc .
App Central で entware を追加.
ASUSTOR NAS App Central 「entware」

C:\Users\Iwao\AppData\Local\Temp>ssh -l Iwao -p 22 192.168.1.75
Password:
Iwao@AS5202T:/volume1/home/Iwao $ gcc
-sh: gcc: not found
Iwao@AS5202T:/volume1/home/Iwao $ opkg
opkg must have one sub-command argument
usage: opkg [options...] sub-command [arguments...]
where sub-command is one of:

Package Manipulation:
        update                  Update list of available packages
        upgrade <pkgs>          Upgrade packages
        install <pkgs>          Install package(s)
        configure <pkgs>        Configure unpacked package(s)
        remove <pkgs|regexp>    Remove package(s)
        flag <flag> <pkgs>      Flag package(s)
         <flag>=hold|noprune|user|ok|installed|unpacked (one per invocation)

Informational Commands:
        ...

Iwao@AS5202T:/volume1/home/Iwao $ opkg install gcc
Installing gcc (7.4.0-5) to root...
Downloading http://bin.entware.net/x64-k3.2/gcc_7.4.0-5_x64-3.2.ipk
Installing zlib (1.2.11-3) to root...
Downloading http://bin.entware.net/x64-k3.2/zlib_1.2.11-3_x64-3.2.ipk
Installing libiconv-full (1.11.1-4) to root...
Downloading http://bin.entware.net/x64-k3.2/libiconv-full_1.11.1-4_x64-3.2.ipk
Installing libintl-full (0.19.8.1-2) to root...
Downloading http://bin.entware.net/x64-k3.2/libintl-full_0.19.8.1-2_x64-3.2.ipk
Installing libbfd (2.27-1) to root...
Downloading http://bin.entware.net/x64-k3.2/libbfd_2.27-1_x64-3.2.ipk
Installing libopcodes (2.27-1) to root...
Downloading http://bin.entware.net/x64-k3.2/libopcodes_2.27-1_x64-3.2.ipk
Installing objdump (2.27-1) to root...
Downloading http://bin.entware.net/x64-k3.2/objdump_2.27-1_x64-3.2.ipk
Installing ar (2.27-1) to root...
Downloading http://bin.entware.net/x64-k3.2/ar_2.27-1_x64-3.2.ipk
Installing binutils (2.27-1) to root...
Downloading http://bin.entware.net/x64-k3.2/binutils_2.27-1_x64-3.2.ipk
Configuring zlib.
Configuring libiconv-full.
Configuring libintl-full.
Configuring libbfd.
Configuring libopcodes.
Configuring objdump.
Configuring ar.
Configuring binutils.
Configuring gcc.
There are no *-dev packages in Entware(with few exceptions)!
Please install headers as described in the wiki:
https://github.com/Entware/Entware/wiki
Iwao@AS5202T:/volume1/home/Iwao $
Iwao@AS5202T:/volume1/home/Iwao $ gcc
/volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/x86_64-openwrt-linux-gnu/7.4.0/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
Iwao@AS5202T:/volume1/home/Iwao $ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/x86_64-openwrt-linux-gnu/7.4.0/lto-wrapper
Target: x86_64-openwrt-linux-gnu
Configured with: /media/ware3/Entware.2020.01/build_dir/target-x86_64_glibc-2.27/gcc-7.4.0/configure --target=x86_64-openwrt-linux --host=x86_64-openwrt-linux --build=x86_64-pc-linux-gnu --program-prefix= --program-suffix= --prefix=/opt --exec-prefix=/opt --bindir=/opt/bin --sbindir=/opt/sbin --libexecdir=/opt/lib --sysconfdir=/opt/etc --datadir=/opt/share --localstatedir=/opt/var --mandir=/opt/man --infodir=/opt/info --disable-nls 'CXXFLAGS_FOR_TARGET=-g -O2 -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS' --build=x86_64-pc-linux-gnu --host=x86_64-openwrt-linux-gnu --target=x86_64-openwrt-linux-gnu --enable-languages=c,c++ --with-bugurl=https://dev.openwrt.org/ --with-pkgversion='OpenWrt GCC 7.4.0' --enable-shared --enable-__cxa_atexit --with-default-libstdcxx-abi=gcc4-compatible --enable-target-optspace --with-gnu-ld --with-specs='-Wl,-rpath=/opt/lib -Wl,--dynamic-linker=/opt/lib/ld-linux-x86-64.so.2' --with-boot-ldflags='static-libstdc++ -static-libgcc -Wl,-rpath=/opt/lib -Wl,--dynamic-linker=/opt/lib/ld-linux-x86-64.so.2' --disable-nls --disable-libsanitizer --disable-libvtv --disable-libcilkrts --disable-libmudflap --disable-libmpx --disable-multilib --disable-libgomp --disable-libquadmath --disable-libssp --disable-decimal-float --disable-libstdcxx-pch --with-host-libstdcxx=-lstdc++ --prefix=/opt --libexecdir=/opt/lib --with-local-prefix=/opt --with-stage1-ldflags='-lstdc++ -Wl,-rpath=/opt/lib -Wl,--dynamic-linker=/opt/lib/ld-linux-x86-64.so.2' --with-default-libstdcxx-abi=gcc4-compatible
Thread model: posix
gcc version 7.4.0 (OpenWrt GCC 7.4.0)
COMPILER_PATH=/volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/x86_64-openwrt-linux-gnu/7.4.0/:/volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/
LIBRARY_PATH=/volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/x86_64-openwrt-linux-gnu/7.4.0/:/volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/:/lib/../lib64/:/usr/lib/../lib64/:/volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/x86_64-openwrt-linux-gnu/7.4.0/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=x86-64'
 /volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/x86_64-openwrt-linux-gnu/7.4.0/collect2 -plugin /volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/x86_64-openwrt-linux-gnu/7.4.0/liblto_plugin.so -plugin-opt=/volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/x86_64-openwrt-linux-gnu/7.4.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccm1Y6FA.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 /volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/x86_64-openwrt-linux-gnu/7.4.0/crt1.o /volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/x86_64-openwrt-linux-gnu/7.4.0/crti.o /volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/x86_64-openwrt-linux-gnu/7.4.0/crtbegin.o -L/volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/x86_64-openwrt-linux-gnu/7.4.0 -L/volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc -L/lib/../lib64 -L/usr/lib/../lib64 -L/volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/x86_64-openwrt-linux-gnu/7.4.0/../../.. -rpath=/opt/lib --dynamic-linker=/opt/lib/ld-linux-x86-64.so.2 -lgcc_s -lc -lgcc_s /volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/x86_64-openwrt-linux-gnu/7.4.0/crtend.o /volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/x86_64-openwrt-linux-gnu/7.4.0/crtn.o
/volume1/.@plugins/AppCentral/entware/opt/bin/../lib/gcc/x86_64-openwrt-linux-gnu/7.4.0/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
Iwao@AS5202T:/volume1/home/Iwao $
Iwao@AS5202T:/volume1/home/Iwao $ ll
total 12
drwxr-xr-x    2 Iwao     users       4.0K Mar 16 18:27 ./
drwxr-xr-x    4 root     root        4.0K Mar 16 15:19 ../
-rw-------    1 Iwao     users        100 Mar 16 18:43 .ash_history
Iwao@AS5202T:/volume1/home/Iwao $ mkdir test
Iwao@AS5202T:/volume1/home/Iwao $ cd test
Iwao@AS5202T:/volume1/home/Iwao/test $ cat > test.cpp
int     main    ()
{
        return  2 ;
        }
Iwao@AS5202T:/volume1/home/Iwao/test $ cat test.cpp
int     main    ()
{
        return  2 ;
        }
Iwao@AS5202T:/volume1/home/Iwao/test $ ls
test.cpp
Iwao@AS5202T:/volume1/home/Iwao/test $ g++ test.cpp
Iwao@AS5202T:/volume1/home/Iwao/test $ ./a.out
Iwao@AS5202T:/volume1/home/Iwao/test $ echo $?
2
Iwao@AS5202T:/volume1/home/Iwao/test $ echo $?
0
Iwao@AS5202T:/volume1/home/Iwao/test $


https://jml.mish.work/various/nas/asustor.html

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

#pragma message (” ~ “) の利用

先日からやっているコードの解析部分を単体テスト用に分割していると,

--------------------構成: prs_frml - Win32 Debug--------------------
コンパイル中...
prs_frml.cpp
c:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h>
cl.exe の実行エラー

prs_frml.exe - エラー 1、警告 0

「パッと見」でわかる時は良いが,今回はわかり難い.
そんな時に私が場所を限定していく手順.
次の様に影響していそうな所に #pragma message (” ~ “) を追加.

#pragma	 message ("pass 1")
#include "StrAryTo.hxx"
#pragma	 message ("pass 2")
#ifdef	 _MSC_VER
	 #ifdef	_AFXDLL
	 #else
		#ifndef	afxDump
		#define	afxDump	std::terr
		#endif
	 #endif
#endif
#pragma	 message ("pass 3")

エラーの場所を特定するために #pragma message を追加
今回は次の様になったので StrAyTo.hxx が原因とわかった.

pass 1
c:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h>

StrAryTo.hxx は CStringArray と std::vector<tstring> を相互変換するコード.
インクルードから外すことで対応.


MFC を使用しているソースなどの対応方法は次の所.
https://dev.mish.work/wordpress/2019/04/05/c1189-windows-h-already-included/

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

VirtualBox 6 VHD のサイズの拡大

Win7 の時に作成した VHD のサイズが 64 GB だったのでそれの拡張.
検索すると,探し方が悪いのか面倒な方法ばかり…
それで見つけたのが次の所.
https://blog.goo.ne.jp/ashm314/e/53afcf6f9356646d5556590cab11c013
「メニュー」-「ファイル」-「仮想メディアマネージャー」
VHD を選択,新しいサイズを指定して「適用」
これで VHD の大きさは大きくなるが,仮想マシンを起動すると変わっていない.
ディスクのサイズが増えていない
「ディスクの管理」で見ると「未割り当て」になっている
これに対応するには次の所.
https://www.atmarkit.co.jp/fwin2k/win2ktips/869vhdextend/vhdextend.html

Microsoft DiskPart バージョン 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
コンピューター: VP-HBY

DISKPART> list disk

  ディスク      状態           サイズ   空き   ダイナ GPT
  ###                                          ミック
  ------------  -------------  -------  -------  ---  ---
  ディスク 0    オンライン            80 GB    16 GB

DISKPART> list volume

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      CD-ROM          0 B  メディアなし
  Volume 1        システムで予約済み    NTFS  Partition    100 MB  正常       システム
  Volume 2    C                NTFS  Partition     63 GB  正常       ブート

DISKPART> select volume 2

ボリューム 2 が選択されました。

DISKPART> extend

DiskPart はボリュームを正常に拡張しました。

DISKPART> list volume

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      CD-ROM          0 B  メディアなし
  Volume 1        システムで予約済み    NTFS  Partition    100 MB  正常       システム
* Volume 2    C                NTFS  Partition     79 GB  正常       ブート

DISKPART>

diskpart select volume  extend
拡張した部分を認識


2021/01/06
「仮想メディアマネージャー」を使用して,80 GB から 100 GB の拡張で 1 時間程度かかった.
100 GB に拡張して,実際のサイズが 160 GB に
実際のファイルサイズが 160 GB 程度になってしまっている.
diskpart による操作は特に問題ない.


Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Freespire 6 インストール

先日 Twitter で見かけてブックマークしておいたサイト.
https://www.freespirelinux.com/2020/02/freespire-60-released.html
2020/06/22 https://www.freespire.net/
時間が空いたので VirtualBox の環境にインストールしてみた.
ちょっと手順がわかりにくい部分があったのでメモ.


仮想マシンの作成.
仮想マシンの作成
仮想ハードディスクの作成.
仮想ハードディスクの作成
ダウンロードした freespire-6.iso を選択.
freespire-6.iso を選択
仮想マシンの起動.
仮想マシンの起動
起動するとこんな感じ.
Freespire  CD から起動したデスクトップ
デスクトップにある「Install freespire 18.04」を開いてインストール開始.
Freespire インストール
インストーラの起動後,一番下に「日本語」がある.あとは表示に従い操作すれば OK .
Freespire インストールを完了するために再起動


日本語のフォルダが幾つかできているので変更.
LANG=C xdg-user-dirs-gtk-update
フォルダの日本語名を変更


2020/05/06
glut インストール.
sudo apt install freeglut3 freeglut3-dev
Freespire glut インストール

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Win10 IIS https 化

テスト環境の IIS を https 化しようと思い,いろいろと…


当然であるが「サイトバインドの追加」で「SSL 証明書」がない.
サイトバインドの追加 SSL 証明書
NAS では Let’s Encrypt を使用しているので調べると win-acme などがあるみたい.
そこから入った https://github.com/win-acme/win-acme/releases/ から落としてやってみたが…


管理者でコマンドプロンプトを起動する必要がある.
wacs 「N」が無効


「N」を選択して進めるがエラー.

C:\Users\Iwao\AppData\Local\Temp<c:\Users\Public\Documents\Tools\win-acme.v2.1.4.710.x64.trimmed\wacs.exe

 A simple Windows ACMEv2 client (WACS)
 Software version 2.1.4.710 (RELEASE, TRIMMED)
 ACME server https://acme-v02.api.letsencrypt.org/
 IIS version 10.0
 Running with administrator credentials
 Scheduled task not configured yet
 Please report issues at https://github.com/PKISharp/win-acme

 N: Create new certificate (simple for IIS)
 M: Create new certificate (full options)
 R: Run scheduled renewals (0 currently due)
 A: Manage renewals (0 total)
 O: More options...
 Q: Quit

 Please choose from the menu: n

 Running in mode: Interactive, Simple
 No sites with host bindings have been configured in IIS. Add one in the IIS Manager or choose the plugin 'Manual input' instead.
 Target plugin IIS aborted or failed

 N: Create new certificate (simple for IIS)
 M: Create new certificate (full options)
 R: Run scheduled renewals (0 currently due)
 A: Manage renewals (0 total)
 O: More options...
 Q: Quit

 Please choose from the menu:


何かの設定が足りないのか?ちょっとわからないので他の方法で…


自己署名証明書でやってみることに.
「IIS 自己署名証明書」で検索
わかりやすかったのがここ.
Windows Server で自己署名 SSL 証明書を作成する手順

IIS マネージャーを使用した証明書の作成
IIS で SSL/TLS を 自己署名入り証明書 で 設定 する方法
「サーバー証明書」-「機能を開く」
「自己署名入り証明書の作成...」
フレンドリ名の指定


「サイトバインドの追加」に「SSL 証明書」が追加されている
LAN 内の他の PC から https で接続
これで https に対応できているかどうかのテストはできるので,今回はここまで.


いつも設定場所を忘れるので…


Microsoft VBScript 実行時エラー エラー ‘800a01ad’
ActiveX コンポーネントはオブジェクトを作成できません。
/_LIB_/L_Mainte.asp, 行 33
Microsoft VBScript 実行時エラー エラー '800a01ad'
「アプリケーション プール」-「詳細設定」-「32 ビット アプリケーションの有効化」を「True」に.
「アプリケーション プール」-「詳細設定」-「32 ビット アプリケーションの有効化」



https://jml.mish.work/index.php/various/iis.html

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

C4244: ‘初期化中’: ‘INT_PTR’ から …

VC 2002 より前に作成した「ダイアログベース」のプロジェクトの場合 x64 対応に変更すると
XxxApp.cpp(73): warning C4244: ‘初期化中’: ‘INT_PTR’ から ‘int’ への変換です。データが失われる可能性があります。

生成されるスケルトンでは,アプリケーションクラスのダイアログの部分が次の様になっている.

	CFBXtoMDlg dlg;
	m_pMainWnd = &dlg;
	int nResponse = dlg.DoModal();
	if (nResponse == IDOK) 	{
	}
	else if (nResponse == IDCANCEL) {
	}

x86,x64 共に warning などを出なくするには,int となっている部分を INT_PTR に変更 する.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

「MFC を使用しない」のエラー

’91 年に C で作成して,’95 年頃に C++ で書き直したコード.
その頃は MFC なしでも動作するようにコードを書いていた.
が,’06 頃の UNICODE 化で MFC に依存するようになってしまっている.
VC6 「プロジェクトの設定」-「MFC を使用しない」
main 関数だけ用意して,対象の cpp をインクルードしてビルドすると,

--------------------構成: t_calc - Win32 Debug--------------------
コンパイル中...
t_calc.cpp
リンク中...
nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) はすでに libcpd.lib(delop.obj) で定義されています
nafxcwd.lib(thrdcore.obj) : error LNK2001: 外部シンボル "__endthreadex" は未解決です
nafxcwd.lib(thrdcore.obj) : error LNK2001: 外部シンボル "__beginthreadex" は未解決です
C:\Temp\Debug\Calc\t_calc\Debug.060/t_calc.exe : fatal error LNK1120: 外部参照 2 が未解決です。
link.exe の実行エラー

t_calc.exe - エラー 4、警告 0

どこかで Afx.h など MFC のコードをインクルードしてしまっている.
インクルードを順に辿るとすぐ見つかるが,どう修正するか悩むところ.
MFC を必要とする場合は今まで通りで,不要な場合は新しいコードに切り替えるか?

#ifdef	 _MFC_VER
#include <Afx.h>
#else
#include "_s_func.hxx"
#endif

ある程度必要なコードは特定できたがまだ書き直してないコードもありそう.


_MFC_VER で切り替えようと思ったが,コンソール AP ではうまく機能しない.
How to detect “Use MFC” in preprocessor
_MFC_VER は Afx.h の中で間接的(AfxVer_.h)に定義されている.
使えるのは _AFXDLL のみ?


次の様な感じ?

#ifdef	 _MSC_VER
#ifdef	 _AFXDLL
#include <Afx.h>
#else
#include <Windows.h>
#endif
#endif

2020/02/14
ヘッダファイルで CString などを使用しているコードの部分は

#ifdef	 _MFC_VER
CString  ChangeString  (LPCTSTR str) ;
#endif

2020/09/25
コンソール AP での define

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

NAS g++ で a.out が作成されない?

warning はあるが,エラーの表示はない状態まで修正して g++ .

Iwao@DS116:~/gcc_test/Test/t_linux/t_calc$ g++ t_calc.cpp -Wall
In file included from /volume1/public/C_Sync/GoogleD/Develop/_.SRC/_gcc/V2_FuncA.hxx:1:0,
                 from Calc_16.cpp:46,
                 from t_calc.cpp:29:
/volume1/public/C_Sync/GoogleD/Develop/_.SRC/__CPR_/v2_funca.hxx: In constructor 'vd2_arc::vd2_arc()':
/volume1/public/C_Sync/GoogleD/Develop/_.SRC/__CPR_/v2_funca.hxx:28:9: warning: 'vd2_arc::tc' will be initialized after [-Wreorder]
  double tc ;
         ^~
/volume1/public/C_Sync/GoogleD/Develop/_.SRC/__CPR_/v2_funca.hxx:27:9: warning:   'double vd2_arc::ts' [-Wreorder]
  double ts ;
         ^~
/volume1/public/C_Sync/GoogleD/Develop/_.SRC/__CPR_/v2_funca.hxx:23:2: warning:   when initialized here [-Wreorder]
  vd2_arc () : lr(0) , tc(0) , ts(0) {}
  ^~~~~~~
/volume1/public/C_Sync/GoogleD/Develop/_.SRC/__CPR_/v2_funca.hxx: In function 'Vd2 get_point_pie(const Vd2&, const Vd2&, double, double)':
/volume1/public/C_Sync/GoogleD/Develop/_.SRC/__CPR_/v2_funca.hxx:263:6: warning: variable 'lm' set but not used [-Wunused-but-set-variable]
  Vd2 lm = (le-ls) / 2 ;
      ^~
In file included from t_calc.cpp:29:0:
Calc_16.cpp: In member function 'virtual int VarCnv::SetError(LPCTSTR, ...)':
Calc_16.cpp:1319:7: warning: variable 'cnt' set but not used [-Wunused-but-set-variable]
  int  cnt ;
       ^~~
Iwao@DS116:~/gcc_test/Test/t_linux/t_calc$ ls
Calc_16.BAK  Calc_16.cpp  Calc_16.hpp  t_calc.BAK  t_calc.cpp  t_calc.dsp
Iwao@DS116:~/gcc_test/Test/t_linux/t_calc$ g++ t_calc.cpp
Iwao@DS116:~/gcc_test/Test/t_linux/t_calc$ ls
Calc_16.BAK  Calc_16.cpp  Calc_16.hpp  t_calc.BAK  t_calc.cpp  t_calc.dsp
Iwao@DS116:~/gcc_test/Test/t_linux/t_calc$ ll
total 248
drwxrwxrwx+  2 Iwao users   4096 Feb  6 11:46 .
drwxrwxrwx+ 16 Iwao users   4096 Feb  6 10:18 ..
-rwxrwxrwx+  1 Iwao users 103036 Feb  6 11:45 Calc_16.BAK
-rwxrwxrwx+  1 Iwao users 103032 Feb  6 11:46 Calc_16.cpp
-rwxrwxrwx+  1 Iwao users  11608 Feb  5 18:53 Calc_16.hpp
-rwxrwxrwx+  1 Iwao users   2756 Feb  6 11:18 t_calc.BAK
-rwxrwxrwx+  1 Iwao users   2420 Feb  6 11:43 t_calc.cpp
-rwxrwxrwx+  1 Iwao users   4420 Feb  5 16:39 t_calc.dsp
Iwao@DS116:~/gcc_test/Test/t_linux/t_calc$ 

なのに a.out が作成されない.
Raspberry Pi で同様に動かすと

pi@raspberrypi:~/projects/t_calc $ g++ t_calc.cpp
In file included from t_calc.cpp:29:
Calc_16.cpp: In function ‘int ExpDel_Bracket1(TCHAR*, size_t, int, int, char)’:
Calc_16.cpp:2152:6: error: ‘_tcspbrk’ was not declared in this scope
  if (_tcspbrk(val,bracket)==NULL){ return FALSE ; } // ���ʂ����݂��Ȃ����͉������Ȃ�
      ^~~~~~~~
Calc_16.cpp:2152:6: note: suggested alternative: ‘wcspbrk’
  if (_tcspbrk(val,bracket)==NULL){ return FALSE ; } // ���ʂ����݂��Ȃ����͉������Ȃ�
      ^~~~~~~~
      wcspbrk
Calc_16.cpp:2161:21: error: ‘_tcsrchr’ was not declared in this scope
  LPTSTR equStartB = _tcsrchr(tmpLeft,startB) ; // �ŏ��� ')' �ɑΉ����� '(' �̈ʒu�����߂�
                     ^~~~~~~~
Calc_16.cpp:2161:21: note: suggested alternative: ‘_tcschr’
  LPTSTR equStartB = _tcsrchr(tmpLeft,startB) ; // �ŏ��� ')' �ɑΉ����� '(' �̈ʒu�����߂�
                     ^~~~~~~~
                     _tcschr
pi@raspberrypi:~/projects/t_calc $ 

どうも ShiftJIS のコメントが邪魔してかエラーが表示されてないだけみたい.
Raspberry Pi でコンパイルするとエラーが表示される
未定義となっているので正しく宣言して対応.


次は warning .

.../v2_funca.hxx:28:9: warning: 'vd2_arc::tc' will be initialized after [-Wreorder]      double tc ;
.../v2_funca.hxx:27:9: warning:   'double vd2_arc::ts' [-Wreorder]                       double ts ;
.../v2_funca.hxx:23:2: warning:   when initialized here [-Wreorder]                      vd2_arc () : lr(0) , tc(0) , ts(0) {}

これは,クラス内の変数の宣言と初期化の順番が異なる場合のものらしい.
もう一つの [-Wunused-but-set-variable] は戻り値を使用していないもの.

warning: variable 'lm' set but not used [-Wunused-but-set-variable]

変数を削除して対応.


前後するが 先日のツール で ShiftJIS のソースを UTF-8 に.

Iwao@DS116:~/gcc_test/Test/t_linux/t_calc$ cd test_sj/
Iwao@DS116:~/gcc_test/Test/t_linux/t_calc/test_sj$ ls
Calc_16.cpp  Calc_16.hpp  t_calc.BAK  t_calc.cpp
Iwao@DS116:~/gcc_test/Test/t_linux/t_calc/test_sj$ g++ t_calc.cpp -Wall
Iwao@DS116:~/gcc_test/Test/t_linux/t_calc/test_sj$ ll
total 132
drwxrwxrwx+ 2 Iwao users   4096 Feb  6 16:39 .
drwxrwxrwx+ 3 Iwao users   4096 Feb  6 16:38 ..
-rwxrwxrwx+ 1 Iwao users 103036 Feb  6 14:41 Calc_16.cpp
-rwxrwxrwx+ 1 Iwao users  11608 Feb  5 18:53 Calc_16.hpp
-rwxrwxrwx+ 1 Iwao users   1821 Feb  6 16:04 t_calc.BAK
-rwxrwxrwx+ 1 Iwao users   1841 Feb  6 16:39 t_calc.cpp
Iwao@DS116:~/gcc_test/Test/t_linux/t_calc/test_sj$ g++ t_calc.cpp -Wall -finput-charset=SJIS
cc1plus: error: conversion from SJIS to UTF-8 not supported by iconv
Iwao@DS116:~/gcc_test/Test/t_linux/t_calc/test_sj$ g++ t_calc.cpp -Wall
In file included from t_calc.cpp:27:0:
Calc_16.cpp: In function 'int ExpDel_Bracket1(TCHAR*, size_t, int, int, char)':
Calc_16.cpp:2152:26: error: '_tcspbrk' was not declared in this scope
  if (_tcspbrk(val,bracket)==NULL){ return FALSE ; } // 括弧が存在しない時は何もしない
                          ^
Iwao@DS116:~/gcc_test/Test/t_linux/t_calc/test_sj$ ll
total 136
drwxrwxrwx+ 3 Iwao users   4096 Feb  6 16:46 .
drwxrwxrwx+ 3 Iwao users   4096 Feb  6 16:38 ..
-rwxrwxrwx+ 1 Iwao users 108716 Feb  6 14:41 Calc_16.cpp
-rwxrwxrwx+ 1 Iwao users  12170 Feb  5 18:53 Calc_16.hpp
drwxrwxrwx+ 2 Iwao users   4096 Feb  6 16:45 org
-rwxrwxrwx+ 1 Iwao users   1841 Feb  6 16:39 t_calc.cpp
Iwao@DS116:~/gcc_test/Test/t_linux/t_calc/test_sj$

エラーが表示される.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

VC /LARGEADDRESSAWARE

64 ビットバイナリの作成に関して調べていて /LARGEADDRESSAWARE を見つけたのでメモ.
/LARGEADDRESSAWARE (大きいアドレスの処理)
これを有効にすると 64 ビット環境で 2 GB を超えるメモリを利用できるみたい.
プロジェクトの「プロパティ」-「構成プロパティ」-「リンカ」-「システム」-「大きいサイズのアドレス」
「プロパティ」-「構成プロパティ」-「リンカ」-「システム」-「大きいサイズのアドレス」


次の様なコードで動作を確認.

#include	<iostream>
#include	"memstat.hxx"
#include	"gettickc.hxx"

int		_tmain	(int argc, TCHAR* argv[])
{
	u_32	free_M = 0 ;
	{
		MemoryStatus	ms ;
		std::tout << long(ms.GetPhysFree()/1024/1024) << std::endl ;
		free_M = u_32(ms.GetPhysFree ()/1024/1024) ;
		}
	{
		std::vector <void*>	memAry(1024,(void*)NULL) ;
		u_32	index =0 ;
		u_32	allocTotal = 0 ;
		u_32	allocSize = free_M/2 ;
		u_32	ngCount = 0 ;
		for (index=0 ; index<free_M && ngCount<10 ; ) {
			if (allocSize == 0)	{	break ;		}
			void*	pAlloc = calloc(allocSize,1024*1024) ;
			if (pAlloc != NULL) {
				allocTotal += allocSize ;
				}
			else {
				allocSize /= 2 ;
				ngCount++ ;
				continue ;
				}
			MemoryStatus	ms ;
			std::tout  <<  allocSize  <<  _T("\t") << allocTotal << _T("\t") << long(ms.GetPhysFree()/1024/1024) << std::endl ;
			free_M = u_32(ms.GetPhysFree ()/1024/1024) ;
			memAry.at(index) = pAlloc ;
			::Sleep_ms(1000) ;
			index++ ;
			if (ngCount > 100)	{	break ;		}
			}
		for (index=0 ; index<free_M ; index++) {
			void*	pAlloc = memAry.at(index) ;
			free(pAlloc) ;
			}
		}
	return 0;
	}

/LARGEADDRESSAWARE を有効にすることで 4 GB まで確保できている.

Microsoft Windows [Version 10.0.18362.592]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\Iwao>C:\Temp\TestCPP\t_mem\t_m_stat\release.080\T_m_stat.exe
3845
961     961     3844
480     1441    3847
240     1681    3845
120     1801    3845
120     1921    3845
60      1981    3837
15      1996    3836
7       2003    3830
7       2010    3830
7       2017    3831
3       2020    3826
3       2023    3826

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

C:\Users\Iwao>C:\Temp\TestCPP\t_mem\t_physf\release.080\T_PhysF.exe
3814
1907    1907    3814
953     2860    3801
476     3336    3799
238     3574    3799
119     3693    3800
119     3812    3790
119     3931    3789
59      3990    3788
29      4019    3792
14      4033    3787
14      4047    3787
7       4054    3787
7       4061    3786
3       4064    3778
3       4067    3781
3       4070    3781
3       4073    3781

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

C:\Users\Iwao>

以下は,デバッグ版とリリース版での違い.

C:\Users\Iwao>C:\Temp\TestCPP\t_mem\t_physf\debug.080\T_PhysF.exe
4606
1151    1151    3461
1151    2302    2300
575     2877    1713
575     3452    1188
287     3739    915
143     3882    758
71      3953    671
35      3988    629
17      4005    600
17      4022    582
17      4039    554
8       4047    566
8       4055    554
8       4063    539
4       4067    527

C:\Users\Iwao>C:\Temp\TestCPP\t_mem\t_physf\release.080\T_PhysF.exe
4406
1101    1101    4394
1101    2202    4401
550     2752    4393
550     3302    4403
275     3577    4403
137     3714    4403
68      3782    4403
68      3850    4403
68      3918    4402
34      3952    4502
34      3986    4503
17      4003    4501
17      4020    4502
17      4037    4499
17      4054    4498
8       4062    4499
8       4070    4498
4       4074    4497

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

C:\Users\Iwao>

デバッグ版では空きメモリが減っている


2020/02/05
(VS)\VC\bin\EditBin.exe でも同様の設定ができるみたい.
EDITBIN リファレンス
“C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\editbin.exe/LARGEADDRESSAWARE C:\Users\Iwao\AppData\Local\Temp\i_Tools.tmp\CopyNewF\20200204\T_Phys_L.exe


2020/02/14
確保したメモリのアドレスを表示する様にしてみた.

Microsoft Windows [Version 10.0.18362.657]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\Iwao>\\TestXP\C_Temp\TestCPP\T_mem\T_m_stat\Release.060\T_m_s_2.exe
2030
1015    1015    2030    0000000000878020
507     1522    2030    000000003ff83020
253     1775    2030    000000005fa90020
126     1901    2029    00000000772a7020
63      1964    2029    000000006f7a6020
15      1979    1950    00000000736b7020
15      1994    1947    0000000074f65020
7       2001    1949    0000000075e73020
7       2008    1949    000000007f0b6020
3       2011    1946    0000000074868020
3       2014    2007    0000000074b7d020
3       2017    2009    000000007658e020
3       2020    2010    0000000076890020
3       2023    2011    000000007f7cb020
3       2026    2012    000000007fada020
1       2027    2013    00000000005f2020
1       2028    2013    00000000745c8020
1       2029    2013    0000000076e05020
1       2030    2013    0000000076f14020

abnormal program termination

C:\Users\Iwao>\\TestXP\C_Temp\TestCPP\T_mem\T_m_stat\Release.060\T_m_s_4.exe
1935
967     967     1935    000000000087a020
967     1934    1996    000000007fff7020
967     2901    1996    ffffffffbc70c020
483     3384    1995    000000003cf8e020
241     3625    1996    000000005b293020
120     3745    1997    000000006a3a8020
120     3865    1994    00000000772aa020
60      3925    1996    fffffffff8e1d020
30      3955    1996    0000000071bbc020
30      3985    1996    fffffffffca2c020
15      4000    1874    0000000074f66020
15      4015    1832    000000007eab8020
15      4030    1996    fffffffffe838020
7       4037    2102    00000000739cd020
7       4044    2139    0000000075e7e020
3       4047    2181    00000000740dc020
3       4050    2254    00000000743ed020
3       4053    2255    0000000074868020
3       4056    2255    0000000074b76020
3       4059    2261    0000000076583020
3       4062    2372    000000007689f020
3       4065    2371    000000007f9c0020
3       4068    2371    000000007fcd5020
3       4071    2371    ffffffffff743020
3       4074    2372    ffffffffffa50020
1       4075    2372    00000000006ec020
1       4076    2296    0000000076e04020
1       4077    2296    0000000076f19020

abnormal program termination

C:\Users\Iwao>

/LARGEADDRESSAWARE を有効にした時の確保したメモリのアドレス

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Linux でのメモリの空き容量の取得

C++ のコードで Linux 環境でのメモリの使用状況 を知りたくなった.
コマンドでは free などがあるが,それと同等のものを取得する関数.

Iwao@DS116:~/gcc_test/Test/t_linux/T_mem/t_mem$ free -h
              total        used        free      shared  buff/cache   available
Mem:           1.0G        695M         29M         49M        281M        162M
Swap:          2.0G        1.0G        1.0G
Iwao@DS116:~/gcc_test/Test/t_linux/T_mem/t_mem$ cat /proc/meminfo
MemTotal:        1030632 kB
MemFree:           16720 kB
Buffers:            9392 kB
Cached:           203592 kB
SwapCached:       227532 kB
Active:           393336 kB
Inactive:         489268 kB
Active(anon):     322836 kB
Inactive(anon):   397436 kB
Active(file):      70500 kB
Inactive(file):    91832 kB
Unevictable:        1408 kB
Mlocked:            1408 kB
SwapTotal:       2097148 kB
SwapFree:        1060108 kB
Dirty:               200 kB
Writeback:             0 kB
AnonPages:        538800 kB
Mapped:            71992 kB
Shmem:             50524 kB
Slab:              89312 kB
SReclaimable:      17608 kB
SUnreclaim:        71704 kB
KernelStack:        4368 kB
PageTables:        14768 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2612464 kB
Committed_AS:    4943664 kB
VmallocTotal:    1039360 kB
VmallocUsed:        6916 kB
VmallocChunk:     961204 kB
Iwao@DS116:~/gcc_test/Test/t_linux/T_mem/t_mem$ ./a.out
16474112
1055367168
Iwao@DS116:~/gcc_test/Test/t_linux/T_mem/t_mem$ cat main.cpp

#include        <iostream>
#include        <sys/sysinfo.h>

int     main    ()
{
        {
                struct  sysinfo meminfo ;
                ::sysinfo(&meminfo);
                std::cout << meminfo.freeram  << std::endl;
                std::cout << meminfo.totalram << std::endl;
                }
        return 0;
        }

Iwao@DS116:~/gcc_test/Test/t_linux/T_mem/t_mem$

Synology NAS DS116 ::sysinfo
最初 getrusage を見つけたが,マニュアルにある様にこの目的では使えない.値は 0 で返ってくる.
次に見つけたのが sysinfo
Fedora や Raspberry Pi ,Synology NAS で動作することを確認.

-		meminfo	{...}			sysinfo
		uptime		17198		__kernel_long_t
-		loads				__kernel_ulong_t [3]
		[0]		35520		__kernel_ulong_t
		[1]		30240		__kernel_ulong_t
		[2]		26880		__kernel_ulong_t
		totalram	2078154752	__kernel_ulong_t
		freeram 	107687936	__kernel_ulong_t
		sharedram	19849216	__kernel_ulong_t
		bufferram	145534976	__kernel_ulong_t
		totalswap	2227171328	__kernel_ulong_t
		freeswap	2206625792	__kernel_ulong_t
		procs   	468		__u16
		pad     	0		__u16
		totalhigh	0		__kernel_ulong_t
		freehigh	0		__kernel_ulong_t
		mem_unit	1		__u32
		_f				char [0]

memstat.hxx

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

VC 6 C2059 C2091 C2809 C2954

2001/11 作成のプロジェクトをビルドしたらよくわからないエラー.

--------------------構成: MsgStCon - Win32 Debug--------------------
コンパイル中...
MsgStCon.cpp
c:\program files\microsoft visual studio\vc98\include\memory(16) : error C2059: 構文エラー : 'string'
c:\program files\microsoft visual studio\vc98\include\memory(17) : error C2091: 関数は関数を返せません。
c:\program files\microsoft visual studio\vc98\include\memory(17) : error C2809: 'operator new' に仮引数リストがありません。
c:\program files\microsoft visual studio\vc98\include\memory(20) : error C2954: テンプレートの定義はネストできません。
cl.exe の実行エラー

MsgStCon.obj - エラー 4、警告 0

C2059 C2091 C2809 C2954


ソースの先頭付近に #include <memory> を追加.

#include	"StdAfx.h"
#include	"MsgStCon.h"

#include	<memory>	//	① OK
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include	<memory>	//	② NG

//	...

②の位置では現象は変わらず.①の位置に追加する必要がある.


2023/03/24
error C2061 , C2091 , C2809 , C2556

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

CEdit で文字列の最後を表示させる

エディットボックスに文字列が入りきらない場合に,文字列の最後の方を表示させる方法
CEdit::SetSel length
例えば次のように UpdateData(FALSE) を呼び出すと CEdit::GetSel では開始位置と終了位置が 0 で戻される.

	m_OutFolder = Copy_ccc.GetTarget().c_str() ;
	UpdateData(FALSE) ;

CEdit::SetSel で文字列の長さを指定することにより最後の位置を選択してその部分が表示されるようにする.

	m_OutFolder = Copy_ccc.GetTarget().c_str() ;
	UpdateData(FALSE) ;
	int	start	= m_OutFolder.GetLength() ;
	int	end	= m_OutFolder.GetLength() ;
	m_CtrlOutFolder.SetSel(start,end) ;

2020/01/22 
選択文字列を常に強調表示するには,
「No Hide Selection」を Treu に

	int	start	= m_OutFolder.GetLength()-1 ;
	int	end	= m_OutFolder.GetLength()-0 ;

EN_NOHIDESEL を有効にする.
Edit Control  No Hide Selection


CEdit に複数行の貼り付けで消える?

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

NAS のシャットダウン,再起動

Synology NAS なのであまり使用することはないが,SSH などで接続したコンソールから

シャットダウン sudo shutdown -h now sudo poweroff
再起動 sudo shutdown -r now sudo reboot
Synology NAS は,shutdown と poweroff ,reboot 共に可能
ASUSTOR NAS は, poweroff ,reboot が可能
QNAP NAS は,admin で入った端末から poweroff と reboot

Synology NAS DS115j コンソールからの「再起動」
DS115j reboot NOW


2020/12 poweroff ,reboot の追加.
https://dev.mish.work/wordpress/2020/12/01/nas-poweroff-reboot/



2021/09/03
NAS によって,起動中アプリのシャットダウン動作が異なるので注意が必要.
NAS の再起動などのスケージュール


https://jml.mish.work/various/nas.html

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

漢字を含むソースのテスト – 2

前回のコードで,文字列の部分を #define で指定.

Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_2$ uconv -f SJIS cc_ml_2.cpp

#include        <clocale>
#include        <iostream>
#include        "i_define.hxx"
#include        "_tdefine.hxx"
#include        "ccc_mlg.hxx"

#define Name_1_         _T("Name_1")
#define Name_2_         _T("Name_2")
#define Name_3_         _T("Name_3")
#define Name_4_         _T("Name_4")
#define Name_5_         _T("Name_5")
#define Name_1J         _T("名称 1")
#define Name_2J         _T("名称 2")
#define Name_3J         _T("名称 3")
#define Name_4J         _T("名称 4")
#define Name_5J         _T("名称 5")

bool    test    (void)
{
        {
                ccc_mlg*        cm = ::get_ccc_mlg() ;
                {
                        ccc_mlg_1       cm_1 ;  cm_1.Name = Name_1_ ;   cm_1.JPN = Name_1J ;
                        ccc_mlg_1       cm_2 ;  cm_2.Name = Name_2_ ;   cm_2.JPN = Name_2J ;
                        ccc_mlg_1       cm_3 ;  cm_3.Name = Name_3_ ;   cm_3.JPN = Name_3J ;
                        ccc_mlg_1       cm_4 ;  cm_4.Name = Name_4_ ;   cm_4.JPN = Name_4J ;
                        ccc_mlg_1       cm_5 ;  cm_5.Name = Name_5_ ;   cm_5.JPN = Name_5J ;
                        cm->push_back(cm_1) ;
                        cm->push_back(cm_2) ;
                        cm->push_back(cm_3) ;
                        cm->push_back(cm_4) ;
                        cm->push_back(cm_5) ;
                        }
                std::tout << ccc("Name_2") << std::endl ;
                }
        return  true ;
        }

int _tmain(int argc, TCHAR* argv[])
{
        _tsetlocale(LC_ALL,_T("")) ;
        test() ;
        return 0 ;
        }

Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_2$ uconv -f SJIS cc_ml_2.cpp  > dd.cpp
Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_2$ g++ dd.cpp -Wall
Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_2$ ./a.out
名称 2
Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_2$  

文字列の部分を #define で定義 Synology NAS 上でコンパイル


#define の部分を別のファイルとして保存.test_ccc.hpp
“㎥” を次の様に指定してみたが,Windows コンソール AP ではうまくいかない.

#define	Unit_M_				"Unit_M^3"
#ifdef	_MSC_VER
	#ifdef	_UNICODE
		#define	Unit_MJ		L"\x7acb "		L" \x33a5 "		L" \x7c73"
	#else
		#define	Unit_MJ		"立米"
	#endif
#else
		#define	Unit_MJ		"\xE3\x8E\xA5"
#endif

Synology NAS では OK .


文字コードを検索できるサイト
https://www.fileformat.info/info/unicode/char/search.htm


2020/01/20
Windows AP の場合のコードを少し変更.

	std::tout << ccc(Name_3_) << std::endl ;
	std::tout << ccc(Unit_M_) << std::endl ;
	tstring	ccc_str ;
	ccc_str += ccc(Name_3_) + _T("\r\n") ;
	ccc_str += ccc(Unit_M_) + _T("\r\n") ;
	::MessageBox(NULL,ccc_str.c_str(),_T("Test"),MB_OK) ;

「㎥」を含む ::MessageBox での表示
::MessageBox で意図した表示となることを確認.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.