ホーム » メモ (ページ 10)
「メモ」カテゴリーアーカイブ
VirtualBox と WSL
Windows Subsystem for Linux を使おうと,機能の有効化を設定してみた.
すると,はっきりはわかっていないが,VirtualBox が不安定になった気がする.
今試すと起動するが,先日は VirtualBox の仮想マシンが起動しないこともあった.
WSL を無効化して様子見.
VS 2019 インストール
Win10 環境に VS 2005 ~ 2019 までをインストール.
XP でも動作する exe を作成する には,「プロジェクトのプロパティ」-「プラットフォーム ツールセット」を「Visual Studio 2017 – Windows XP (v141_xp)」に.
------ ビルド開始: プロジェクト: i3DV, 構成: Release Win32 ------ C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Platforms\Win32\PlatformToolsets\v141_xp\Toolset.targets(39,5): warning MSB8051: Windows XP をターゲットとするサポートは非推奨であり、Visual Studio の将来のリリースで提供されなくなります。詳細については、https://go.microsoft.com/fwlink/?linkid=2023588 をご覧ください。 StdAfx.cpp _WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h) ChildFrm.cpp \\devs\documents\develop\_.src\__iwao\xml_ms_.hxx(17): warning C4192: 'ISequentialStream' を自動的に除外し、タイプ ライブラリ 'msxml6.dll' をインポートします \\devs\documents\develop\_.src\__iwao\xml_ms_.hxx(17): warning C4192: '_FILETIME' を自動的に除外し、タイプ ライブラリ 'msxml6.dll' をインポートします i3DV.cpp i3DVDoc.cpp i3DVView.cpp MainFrm.cpp ... コードを生成中... C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include\sal.h(2866): warning RC4005: '__useHeader' : redefinition C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include\sal.h(2876): warning RC4005: '__on_failure' : redefinition i3DV142.vcxproj -> c:\Temp\i_Tools\i3DV\Release.142\Win32\i3DV.exe プロジェクト "i3DV142.vcxproj" のビルドが終了しました。 ========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========
「Visual Studio 2019 (v142)」に戻してビルドすると,
------ ビルド開始: プロジェクト: i3DV, 構成: Release Win32 ------ StdAfx.cpp C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.20.27508\atlmfc\include\afx.h(62): fatal error C1083: include ファイルを開けません。'new.h':No such file or directory プロジェクト "i3DV142.vcxproj" のビルドが終了しました -- 失敗。 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
「Windows SDK バージョン」が「7.0」になっているので「10.0 (最新のインストールされているバージョン)」に.
2024/05 VC 6 から VC 2019 への移行
VS 2013 インストールに失敗
Win10 に,以前ダウンロードした VS 2013 iso でインストールしようとすると途中で失敗する.
ja_visual_studio_professional_2013_with_update_5_x86_dvd_6815755.iso
丁度一年前にダウンロードしたもので,ファイルサイズは 3.71 GB .
検索すると,
VS 2013 Professional insatlation problem with microsoft visual studio 2013 vsgraphics helper dependencies incorrect function
どうも iso が壊れている?みたいで,もう一度落とし直した.
ファイル名は同じだがサイズが異なる.
もう一度インストールしてみるとうまくいった.
Win 10 設定
新しく Win10 環境が手に入ったので,その設定のメモ.
エクスプローラの設定
「エクスプローラ」の「ファイル」-「オプション」.
「開いているフォルダーまで展開」にチェック.
「タイトルバーに完全なパスを表示する」にチェック.
「ログオン時に以前のフォルダーウィンドウを表示する」にチェック.
「登録されている拡張子は表示しない」のチェックを外す.
バージョンの表示
HKEY_CURRENT_USER\Control Panel\Desktop
PaintDesktopVersion
ファイルマネージャは次の所から.
https://github.com/Microsoft/winfile/releases
以前のバージョンより良くなっている.
電源メニューに「休止状態」の表示
https://dynabook.com/assistpc/faq/pcdata2/016713.htm
3DS 保存でアプリケーションエラー
次の様な 3DS 形式で保存するコード.
データ部分が空の時,アプリケーションエラー.
bool save_3DS (FILE* ofp,const tDS_Chunk& chnk) { if (ofp == NULL) { return false ; } { u_16 id = chnk.GetID() ; u_32 len = chnk.GetLen() ; v_u__8 data= chnk.GetData() ; ::fwrite(&id, 1, sizeof(u_16), ofp) ; ::fwrite(&len, 1, sizeof(u_32), ofp) ; ::fwrite(&data[0], data.size(), sizeof(u__8), ofp) ; } for (size_t index=0 ; index<size_t(chnk.GetChildCount()) ; index++) { tDS_Chunk child = chnk.GetChild(long(index)) ; bool result = ::save_3DS(ofp,child) ; if (!result) { return false ; } } return true ; }
::fwrite(&data[0], data.size(),sizeof(u__8), ofp) ; がうまくない.
次の様な感じでコードを修正.
if (data.size() > 0) { ::fwrite(&data[0], data.size(), sizeof(u__8), ofp) ; }
VC 6 や VC 14 では,たまたまだと思うがエラーにならなかった.
VPN と AiProtection
ちょっと使えると思ったのでメモ.
家の中でスマートフォンなどを使用する時は,AiProtection が効くのでリスクを軽減できる.
外でスマートフォンを使用する時にこの辺りの不安が残っていた.
先日 VPN をいろいろ試していて,あまり用途はないと思っていたが…
外から VPN で接続して AiProtection のチェック用サイトにアクセスすると,
LAN 内からアクセスした時と表示は異なるみたいだが,ちゃんとガードはかかっている.
AiProtection が効かない?
先日スマートフォンで,次の所からのリンクにアクセスすると,うまくない.
ウイルスバスターCorp. 11.0, XG, Apex One のWebレピュテーション機能テスト方法
LAN 内の PC などからは正しく動作している.
暫くわからなかったが,
原因はスマートフォンで使用していたブラウザの設定?だった.
Chrome を使用していて,その中の設定の「データセーバー」が影響していた.
「データセーバー」を「OFF」にして対応.
Joomla! カテゴリの並び替え
Joomla! の「記事」は WP の「投稿」と同じ様なものと考えて良さそう.
「記事」を幾つか追加.また,分類するために「カテゴリ」も追加.
今まで最初からある「Uncategorised」のみだったので気付かなかったが,追加したカテゴリが下に表示される.
「記事」-「カテゴリ」の一覧で,先頭列の「ドットが縦に 3 つ並んでいる所」がドラッグできる.
http://mish.work/joomla/
わかりやすく書かれているページを見つけたので…
Joomla 3.0の記事順序を変更するには
auひかり ASUS ルータで VPN 設定
先日 ASUS RT-AC86U に VPN 設定をしようと思い,次の所を参考に設定.
[VPN] OpenVPNサーバーの設定方法
ルータが持っている DDNS 機能は使用していない.と言うか私の環境ではうまく利用できないみたい.
回線が au ひかりで,2 重ルータ になっているためではないかと思う.
回避策があるのかもしれないが,他の方法で困っていないので調べていない.
DDNS 機能は,Synology NAS の機能と,MyDNS を利用している.
クライアントは Android なので,OpenVPN Connect を利用.
「OpenVPN 設定をファイル…」でエクスポートした client.ovpn を Android に移す.
メールに添付して,Android に送信.
LAN 内で接続すると接続は可能だが,外から接続すると接続できない.
その状態で進まないでそのまま …
Synology NAS があるので,それで VPN サーバとして動作可能なことは知っていた.
ルータでうまくないので NAS での設定を調べていると,解決のためのヒントあり.
Synology DS218j で VPN を構築する
AC86U でエクスポートした ovpn をメモ帳などで開いて,初めの方にある IP アドレス部分を書換え.
2 重ルータになっている関係で,192.168.x.x の様になっていた.
これをグローバル IP アドレスに書換え.環境によっては DDNS を指定してする.
これで外から接続可能になったみたい.
Android で外からアクセスした時,IP が変わることを確認.
こちらで IP アドレスなどを確認 できます.
2019/04/25
上海にいる人に確認してもらった所,この設定で OK みたい.
iPhone で YouTube を見られることを確認してもらった.
2019/05/28 Windows 版 OpenVPN クライアントの設定
2019/06/19 ASUS ルータで IPSec VPN 設定
2021/05/11 ASUS ルータ OpenVPN 設定 ポート変更
WordPress でエラーが表示される
自分のブログを見ているとエラーが…
Warning: mysqli_query(): (HY000/14): Can’t change size of file (Errcode: 28 “No space left on device”) in /…/wp-db.php on line 1924 Warning: mysqli_query(): (HY000/1021): Disk full (/tmp/#sql_27c2_0.MAI); waiting for someone to free some space… (errno: 28 “No space left on device”) in /…/wp-db.php on line 1924
原因は,画像変換で /tmp 以下を使用していて,70 MB 位のファイルが幾つも存在する様になってしまっていた.
Iwao@DS116:~/gcc_test/Test/t_linux/call_im$ ./a.out ~/gcc_test/Test/gons_to/data/dib/IMG_20180624_185921.vr.jpg Iwao@DS116:~/gcc_test/Test/t_linux/call_im$ ./a.out ~/gcc_test/Test/gons_to/data/dib/IMG_20180624_185921.vr.jpg Iwao@DS116:~/gcc_test/Test/t_linux/call_im$ ./a.out ~/gcc_test/Test/gons_to/data/dib/IMG_20180624_185921.vr.jpg convert: ImproperImageHeader `/tmp/Iwao/i_Tools.tmp/20190201/20190201/IMG_20180624_185921.vr.jpg.004.bmp' @ error/bmp.c/ReadBMPImage/590. convert: NoImagesDefined `/tmp/Iwao/i_Tools.tmp/20190201/20190201/IMG_20180624_185921.vr.001.jpg' @ error/convert.c/ConvertImageCommand/3258. Iwao@DS116:~/gcc_test/Test/t_linux/call_im$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 2385592 946808 1320000 42% / none 513436 0 513436 0% /dev /tmp 515324 515320 4 100% /tmp /run 515324 3312 512012 1% /run /dev/shm 515324 4 515320 1% /dev/shm none 4 0 4 0% /sys/fs/cgroup /dev/sda3 2879506904 518855752 2360532368 19% /volume1 Iwao@DS116:~/gcc_test/Test/t_linux/call_im$
rm -r /tmp/Iwao/i_Tools.tmp/20190201/* とすることで一先ず対応.
他に,/tmp なので再起動すれば消去される.
デバッグ用にファイルを残していることもあるが,コードとしてどの様に対応するか検討が必要.
Linux 上での画像情報の表示
先日 Linux 上での zip などを調べていて見つけた convert など.
その中の,画像情報を表示する identify .
pi@raspberrypi:~ $ identify 2019-01-29-234500_1360x768_scrot.png 2019-01-29-234500_1360x768_scrot.png PNG 1360x768 1360x768+0+0 8-bit sRGB 338KB 0.000u 0:00.010 pi@raspberrypi:~ $
コマンドオプションに -verbose を指定する方法はいろいろな所に書かれているが,欲しかったのは限られた情報.
例えば「幅」や「高さ」,「色数」など.
identify -help とすると,-format “string” と言うのがあった.
例えば -format “%w\n%h\n” と指定すると,幅と高さを 2 行に表示できる.
pi@raspberrypi:~ $ identify -format "%w\n%h\n" 2019-01-29-234500_1360x768_scrot.png 1360 768 pi@raspberrypi:~ $
コンパイルエラー C2664
次の様になっている _UNICODE のプロジェクトでエラー.
//#include “messbar.hxx”
#include “i_dib_bg.hxx”
#include “itls_tmp.hxx”
--------------------構成: Tc_i_DIB - Win32 Release-------------------- コンパイル中... Tc_i_DIB.cpp \\DevS\Documents\Develop\_.SRC\__CPR_\_s_func.hxx(71) : error C2664: 'wcscpy' : 1 番目の引数を 'char *' から 'unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。 \\DevS\Documents\Develop\_.SRC\__CPR_\_s_func.hxx(72) : error C2664: 'wcslen' : 1 番目の引数を 'const char *' から 'const unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。 \\DevS\Documents\Develop\_.SRC\__CPR_\_s_func.hxx(88) : error C2664: 'wcsncpy' : 1 番目の引数を 'char *' から 'unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。 \\DevS\Documents\Develop\_.SRC\__CPR_\_s_func.hxx(105) : error C2664: 'wcscat' : 1 番目の引数を 'char *' から 'unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。 \\DevS\Documents\Develop\_.SRC\__CPR_\_s_func.hxx(106) : error C2664: 'wcslen' : 1 番目の引数を 'const char *' から 'const unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。 \\DevS\Documents\Develop\_.SRC\__CPR_\_s_func.hxx(106) : error C2664: 'wcslen' : 1 番目の引数を 'char *' から 'const unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。 \\DevS\Documents\Develop\_.SRC\__CPR_\_s_func.hxx(127) : error C2664: 'wcsncat' : 1 番目の引数を 'char *' から 'unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。 \\DevS\Documents\Develop\_.SRC\__CPR_\_s_func.hxx(128) : error C2664: 'wcslen' : 1 番目の引数を 'const char *' から 'const unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。 \\DevS\Documents\Develop\_.SRC\__CPR_\_s_func.hxx(128) : error C2664: 'wcslen' : 1 番目の引数を 'char *' から 'const unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。 \\DevS\Documents\Develop\_.SRC\__CPR_\_s_func.hxx(171) : error C2664: '_wcslwr' : 1 番目の引数を 'char *' から 'unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。 \\DevS\Documents\Develop\_.SRC\__CPR_\_s_func.hxx(186) : error C2664: '_wcsupr' : 1 番目の引数を 'char *' から 'unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。 \\DevS\Documents\Develop\_.SRC\__CPR_\_s_func.hxx(211) : error C2664: '_wgetenv' : 1 番目の引数を 'const char *' から 'const unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。 \\DevS\Documents\Develop\_.SRC\__CPR_\_s_func.hxx(235) : error C2664: '_wcreat' : 1 番目の引数を 'const char *' から 'const unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。 \\DevS\Documents\Develop\_.SRC\__CPR_\_s_func.hxx(259) : error C2664: '_wfopen' : 1 番目の引数を 'const char *' から 'const unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。 \\DevS\Documents\Develop\_.SRC\__CPR_\ttox.hxx(32) : error C2664: 'wcstoul' : 1 番目の引数を 'const char *' から 'const unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。 \\DevS\Documents\Develop\_.SRC\__CPR_\ttox.hxx(32) : fatal error C1903: 直前のエラーを修復できません; コンパイルを中止します。 cl.exe の実行エラー Tc_i_DIB.exe - エラー 16、警告 0
_MBCS にすると OK .
また,コメントにした “messbar.hxx” のインクルードを外すと OK .
エラーは UNICODE 版の関数を使用しているのに char を与えているというもの.
wcscpy を呼び出すときの引数を char* ではなく wchar_t* にすれば良い.
または,_MBCS ,_UNICODE 共に動作する様に _tcscpy の様な関数と TCHAR を使用する.
2019/01/31
今回エラーになったのは次の様なコード.
bool TcsCpy (LPTSTR dst,size_t sizeD,LPCTSTR src)
{
if (sizeD == 0) { return false ; }
bool rs = true ;
#if(_MSC_VER >= 1400)
{
errno_t err = _tcscpy_s (dst,sizeD, src) ;
if (err != 0) { rs = false ; }
}
#else
{
_tcscpy (dst, src) ;
if (sizeD < _tcslen(src)) { rs = false ; }
}
#endif
return rs ;
}
原因は _UNICODE が定義 されていて UNICODE が定義されていない ことによるもの.
ビルド環境?によってこれらの #define が矛盾してしまうことがある.
Windows.h をインクルードする前に両方が定義されている必要がある.
今回は自前の def_bmp.hxx の先頭に,i_define.hxx をインクルードすることで対応.
i_define.hxx 内では,次の様にしている.
// (VS8)\VC\AtlMFC\Include\AfxV_W32.h #ifdef _MSC_VER #ifdef _UNICODE #ifndef UNICODE #define UNICODE // UNICODE is used by Windows headers #endif #endif #ifdef UNICODE #ifndef _UNICODE #define _UNICODE // _UNICODE is used by C-runtime/MFC headers #endif #endif #endif
2020/09
i_def_aw.hxx を用意.
コンソール AP での define
Linux での zip コマンド
先日から,zip 関連のコマンドの動作を調べている.
それで困っているのが,あるフォルダ以下を指定する方法.
例えば ~/Desktop/ 直下のファイルを指定する時,パスの home/pi/Desktop/ の部分を含めたくない.
pi@raspberrypi:~/Desktop $ ls bak myweb scratch1_20190107.sb scratch2_20181231.sb2 test_c 三角形.py 正方形.py pi@raspberrypi:~/Desktop $ zip /tmp/pi/aaa.zip * adding: bak/ (stored 0%) adding: myweb/ (stored 0%) adding: scratch1_20190107.sb (deflated 39%) adding: scratch2_20181231.sb2 (deflated 30%) adding: test_c/ (stored 0%) adding: 三角形.py (deflated 17%) adding: 正方形.py (deflated 16%) pi@raspberrypi:~/Desktop $ zip /tmp/pi/aa.zip ~/Desktop/* adding: home/pi/Desktop/bak/ (stored 0%) adding: home/pi/Desktop/myweb/ (stored 0%) adding: home/pi/Desktop/scratch1_20190107.sb (deflated 39%) adding: home/pi/Desktop/scratch2_20181231.sb2 (deflated 30%) adding: home/pi/Desktop/test_c/ (stored 0%) adding: home/pi/Desktop/三角形.py (deflated 17%) adding: home/pi/Desktop/正方形.py (deflated 16%) pi@raspberrypi:~/Desktop $ unzip /tmp/pi/aaa.zip -l Archive: /tmp/pi/aaa.zip caution: filename not matched: -l pi@raspberrypi:~/Desktop $ unzip -l /tmp/pi/aaa.zip Archive: /tmp/pi/aaa.zip Length Date Time Name --------- ---------- ----- ---- 0 2019-01-09 15:02 bak/ 0 2019-01-10 21:44 myweb/ 75455 2019-01-08 00:13 scratch1_20190107.sb 69629 2019-01-08 00:13 scratch2_20181231.sb2 0 2019-01-16 16:40 test_c/ 100 2019-01-04 15:13 三角形.py 99 2019-01-04 15:11 正方形.py --------- ------- 145283 7 files pi@raspberrypi:~/Desktop $ unzip -l /tmp/pi/aa.zip Archive: /tmp/pi/aa.zip Length Date Time Name --------- ---------- ----- ---- 0 2019-01-09 15:02 home/pi/Desktop/bak/ 0 2019-01-10 21:44 home/pi/Desktop/myweb/ 75455 2019-01-08 00:13 home/pi/Desktop/scratch1_20190107.sb 69629 2019-01-08 00:13 home/pi/Desktop/scratch2_20181231.sb2 0 2019-01-16 16:40 home/pi/Desktop/test_c/ 100 2019-01-04 15:13 home/pi/Desktop/三角形.py 99 2019-01-04 15:11 home/pi/Desktop/正方形.py --------- ------- 145283 7 files pi@raspberrypi:~/Desktop $
Synology NAS の 7z だと,ルートから指定?すれば省かれるっぽい.
Iwao@DS116:~/gcc_test/Test/T_zip/zip$ 7z a aa.zip t_call_z/* Scanning Creating archive aa.zip Total: 652420 Compressing t_call_z/a.out Compressing t_call_z/bak/a.out Compressing t_call_z/bak/l7z.out Compressing t_call_z/bak/t_call_z.BAK Compressing t_call_z/bak/t_call_z.cpp Compressing t_call_z/bak/t_call_z.dsp Compressing t_call_z/bak/zip.out Compressing t_call_z/t_call_z.cpp Everything is Ok Iwao@DS116:~/gcc_test/Test/T_zip/zip$ 7z a aaa.zip ~/gcc_test/Test/T_zip/zip/t_call_z/* Scanning Creating archive aaa.zip Total: 652420 Compressing a.out Compressing bak/a.out Compressing bak/l7z.out Compressing bak/t_call_z.BAK Compressing bak/t_call_z.cpp Compressing bak/t_call_z.dsp Compressing bak/zip.out Compressing t_call_z.cpp Everything is Ok Iwao@DS116:~/gcc_test/Test/T_zip/zip$ 7z l aa.zip Listing archive: aa.zip -- Path = aa.zip Type = zip Physical Size = 187879 Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2019-01-22 11:02:30 ..... 161544 46349 t_call_z/a.out 2019-01-22 09:38:18 D.... 0 0 t_call_z/bak 2019-01-21 16:33:02 ..... 158988 45396 t_call_z/bak/a.out 2019-01-21 16:18:56 ..... 158628 45292 t_call_z/bak/l7z.out 2019-01-21 15:15:12 ..... 2325 815 t_call_z/bak/t_call_z.BAK 2019-01-21 16:31:56 ..... 2802 962 t_call_z/bak/t_call_z.cpp 2019-01-21 14:02:06 ..... 4227 1141 t_call_z/bak/t_call_z.dsp 2019-01-21 15:44:20 ..... 158656 45303 t_call_z/bak/zip.out 2019-01-22 11:01:32 ..... 4569 1167 t_call_z/t_call_z.cpp 2019-01-22 14:41:22 D.... 0 0 t_call_z/tmp ------------------- ----- ------------ ------------ ------------------------ 651739 186425 8 files, 2 folders Iwao@DS116:~/gcc_test/Test/T_zip/zip$ 7z l aaa.zip Listing archive: aaa.zip -- Path = aaa.zip Type = zip Physical Size = 187609 Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2019-01-22 11:02:30 ..... 161544 46349 a.out 2019-01-22 09:38:18 D.... 0 0 bak 2019-01-21 16:33:02 ..... 158988 45396 bak/a.out 2019-01-21 16:18:56 ..... 158628 45292 bak/l7z.out 2019-01-21 15:15:12 ..... 2325 815 bak/t_call_z.BAK 2019-01-21 16:31:56 ..... 2802 962 bak/t_call_z.cpp 2019-01-21 14:02:06 ..... 4227 1141 bak/t_call_z.dsp 2019-01-21 15:44:20 ..... 158656 45303 bak/zip.out 2019-01-22 11:01:32 ..... 4569 1167 t_call_z.cpp 2019-01-22 14:41:22 D.... 0 0 tmp ------------------- ----- ------------ ------------ ------------------------ 651739 186425 8 files, 2 folders Iwao@DS116:~/gcc_test/Test/T_zip/zip$
bool linux_zip_create (LPCTSTR zip_name,LPCTSTR zip_root) { { tstring cmd_psd = _T("pushd ") + tstring(zip_root) ; _tsystem(cmd_psd.c_str()) ; } { tstring l_z_name = zip_name ; tstring l7z_name = ::Path_ChangeExt(l_z_name,_T("_7.zip")) ; tstring root_zip = _T("*") ; tstring root_7z_ = tstring(zip_root) + _T("/*") ; tstring cmd_zip = l_cmd_zip _T(" ") + l_z_name + _T(" -r ") + root_zip ; // zip zip_name -r zip_root tstring cmd_7z_ = l_cmd_7z_ _T(" a ") + l7z_name + _T(" ") + root_7z_ ; // 7z a zip_name zip_root if (which(l_cmd_zip)) { _tsystem(cmd_zip.c_str()) ; } if (which(l_cmd_7z_)) { _tsystem(cmd_7z_.c_str()) ; } _tsystem(l_cmd_popd) ; if (which(l_cmd_zip)) { return true ; } if (which(l_cmd_7z_)) { return true ; } } return false ; }
pushd で,カレントを動かすことにより対応.
Synology NAS /tmp の空き容量
次の様に /tmp 以下に zip を作成していたら,エラー(No space left on device)に.
Iwao@DS116:/tmp/Iwao/i_Tools.tmp/20190121/tst$ zip /tmp/Iwao/i_Tools.tmp/20190121/tst/zzzzzz.zip -r /volume1/homes/Iwao/gcc_test/Test/T_zip/zip/t_call_z/ adding: volume1/homes/Iwao/gcc_test/Test/T_zip/zip/t_call_z/ (stored 0%) adding: volume1/homes/Iwao/gcc_test/Test/T_zip/zip/t_call_z/a.out (deflated 71%) adding: volume1/homes/Iwao/gcc_test/Test/T_zip/zip/t_call_z/l7z.out (deflated 71%) adding: volume1/homes/Iwao/gcc_test/Test/T_zip/zip/t_call_z/zip.out (deflated 71%) adding: volume1/homes/Iwao/gcc_test/Test/T_zip/zip/t_call_z/bak/ (stored 0%) adding: volume1/homes/Iwao/gcc_test/Test/T_zip/zip/t_call_z/bak/t_call_z.dsp (deflated 73%) adding: volume1/homes/Iwao/gcc_test/Test/T_zip/zip/t_call_z/bak/t_call_z.BAK (deflated 65%) adding: volume1/homes/Iwao/gcc_test/Test/T_zip/zip/t_call_z/t_call_z.cpp (deflated 65%) adding: volume1/homes/Iwao/gcc_test/Test/T_zip/zip/t_call_z/tmp/ (stored 0%) adding: volume1/homes/Iwao/gcc_test/Test/T_zip/zip/t_call_z/tmp/tst_.zip.000._7.zip (stored 0%) adding: volume1/homes/Iwao/gcc_test/Test/T_zip/zip/t_call_z/tmp/tst_.zip_.000.zip (stored 0%) adding: volume1/homes/Iwao/gcc_test/Test/T_zip/zip/t_call_z/tmp/tst_.zip_.001.zip7.zip (stored 0%) adding: volume1/homes/Iwao/gcc_test/Test/T_zip/zip/t_call_z/tmp/t_call_z.001.zip zip I/O error: No space left on device zip error: Output file write failure (write error on zip file) Iwao@DS116:/tmp/Iwao/i_Tools.tmp/20190121/tst$
空き容量を表示する df コマンドで確認すると,
Iwao@DS116:/tmp/Iwao/i_Tools.tmp/20190121/tst$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 2.3G 920M 1.3G 42% / none 502M 0 502M 0% /dev /tmp 504M 501M 2.7M 100% /tmp /run 504M 4.9M 499M 1% /run /dev/shm 504M 4.0K 504M 1% /dev/shm none 4.0K 0 4.0K 0% /sys/fs/cgroup /dev/sda3 2.7T 495G 2.2T 19% /volume1 Iwao@DS116:/tmp/Iwao/i_Tools.tmp/20190121/tst$
Synology NAS で zip , unzip , 7z
以前調べた Synology NAS 上での zip ファイルの扱い.
今まで 3mf ,amf などは Windows 環境のみ(i_Zip.hxx)の対応としていた.
作成 | 展開 | |
zip , unzip | zip zip_name -r zip_root | unzip -d out_dir zip_path |
7z | 7z a zip_name zip_root/* | 7z x zip_path -oout_dir |
7z の作成時の a は add .つまり zip が存在すると,それに追加になるみたい.
もう一つ見つけたのは,convert コマンド.
Synology NAS ,Raspberry Pi 共に可能.
Synology NAS ではダメだが,display コマンドで画像を表示できる.
2019/01/18
Raspberry Pi のファイルマネージャの起動.
コンソールで pcmanfm .
“pcmanfm /tmp/” とするとそこから開ける.
Raspberry Pi 再起動コマンド
ちょっと原因がわからないが「ジブン専用パソコンキット2」の HDMI 接続の画面が表示されなくなった.
リモートデスクトップや SSH では接続可能な状態.
Linux なので,端末から操作できるはずと思い検索すると
Raspberry Pi シャットダウンコマンド
sudo shutdown -h now を入力.
再起動は sudo shutdown -r now
起動すると,ちゃんと画面は表示されている.何だったのだろう?
「Raspberry Pi の設定」-「インターフェイス」に「VNC」の設定があったので,VNC 接続を試してみた.
設定を「有効」にして,RealVNC のサイトからダウンロード.
リモートデスクトップ(RDP)とは違い,VNC 接続では画面の表示状態を転送しているらしい.
RDP は,キーボードや画面などをつなぎ換えて利用している感じ.Raspberry Pi 本体の表示とは異なる.
それに対して VNC は,追加でキーボードや画面をつなげた様な感じ.本体の表示と同様.
VNC は,リモートアシスタンスの動作に近い?
VNC で,Scratch 1.4 は正しく起動し表示できる.
Minecraft Pi は,起動はするがウィンドウ内が表示されないみたい.
2020/05/07
他に reboot コマンド.
C:\Users\Iwao>ssh -l pi 192.168.1.36 pi@192.168.1.36's password: Linux raspberrypi 4.19.75-v7+ #1270 SMP Tue Sep 24 18:45:11 BST 2019 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Thu May 7 17:05:07 2020 Linux raspberrypi 4.19.75-v7+ #1270 SMP Tue Sep 24 18:45:11 BST 2019 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Thu May 7 17:05:07 2020 SSH is enabled and the default password for the 'pi' user has not been changed. This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password. pi@raspberrypi:~ $ reboot --help reboot [OPTIONS...] [ARG] Reboot the system. --help Show this help --halt Halt the machine -p --poweroff Switch off the machine --reboot Reboot the machine -f --force Force immediate halt/power-off/reboot -w --wtmp-only Don't halt/power-off/reboot, just write wtmp record -d --no-wtmp Don't write wtmp record --no-wall Don't send wall message before halt/power-off/reboot See the halt(8) man page for details. pi@raspberrypi:~ $ reboot Failed to set wall message, ignoring: Interactive authentication required. Failed to reboot system via logind: Interactive authentication required. Failed to open initctl fifo: 許可がありません Failed to talk to init daemon. pi@raspberrypi:~ $ sudo reboot Connection to 192.168.1.36 closed by remote host. Connection to 192.168.1.36 closed. C:\Users\Iwao>
xml の読込み
幾つかの xml データを読んでみると,データにより msxml.dll を使用したときに比べて明らかに遅い.
bool Test (LPCTSTR pathName) { tstring outPath = ::Get_i_Tools_tmp_date() ; tstring now_hms = ::Now_Format(_T("_%M%S")) ; tstring out_xml = ::Path_AddLastSP(outPath) + ::Path_GetName(pathName) + now_hms + _T(".o.xml") ; tstring new_xml = ::Path_AddLastSP(outPath) + ::Path_GetName(pathName) + now_hms + _T(".n.xml") ; { ElapseTime eto ; Xml_E xml = ::Xml_Import(pathName) ; std::cerr << eto.GetElapse() << std::endl ; Xml_Out::Export(xml,out_xml.c_str()) ; } { ElapseTime etn ; Xml_E xml = ::Load_xml_2018_12(pathName) ; std::cerr << etn.GetElapse() << std::endl ; Xml_Out::Export(xml,new_xml.c_str()) ; } return true ; }
データは次の様な x3d で,5 倍くらいかかる.
x3d の場合は,属性の値が長い.
そのため次のコード部分( q_str+=cq )がうまくない.
tstring Parse_xml_quot (c_tstring& str,const TCHAR qm,size_t* index) { tstring q_str ; if (*index < str.length()) { TCHAR c = str[*index] ; if (c == qm) { q_str += c ; for (size_t indexQ=*index+1 ; indexQ<str.size() ; indexQ++) { TCHAR cq = str[indexQ] ; q_str += cq ; if (cq == qm) { *index = indexQ ; break ; } } } } return q_str ; }
送信された URL に noindex タグ…
先日 All in One SEO の設定を変更して「送信された URL に noindex タグが追加されています」となってしまった.
All in One SEO の「XML サイトマップ」の「日別アーカイブページを含める」のチェックを外した状態に変更.