X



トップページLinux
1002コメント312KB
【Bash】Windows Subsystem for Linux【WSL】3
レス数が950を超えています。1000を超えると書き込みができなくなります。
0892login:Penguin
垢版 |
2018/10/31(水) 11:47:57.85ID:qwJ4s5+d
kill出来ないなら1809からだけど、wslconfig /terminateで再起動しちゃえば良いのでは
0893login:Penguin
垢版 |
2018/10/31(水) 15:02:39.97ID:8Aa5vq4y
何度も言うけど、I/Oが遅いのは、MicrosoftがさっさとNTFSを捨てないから。
さっさと、NTFSなんか捨てるべき。
0894login:Penguin
垢版 |
2018/10/31(水) 15:23:20.59ID:tg1fbO7V
>>892
1809より前でもwslサービス停止させればkillできたけど、
書き込み処理中でも強引に全体を終了させるからファイル
破損すると被害大きかった
0895login:Penguin
垢版 |
2018/10/31(水) 15:40:43.59ID:u9fQvkoU
https://www.sqlite.org/download.html
から
SQLiteの公式バイナリ落として、WindowsネイティブとLinux on WSLとでどれくらい違いがあるんだろうか?
単純なSQLでベンチマーク取ってみると10倍くらい差が出そう。
0896login:Penguin
垢版 |
2018/10/31(水) 16:30:32.03ID:bF/gw1Xi
NTFSが原因ではないでしょ。WindowsネイティブとLinux on WSLはともにNTFSなのだから。
0897login:Penguin
垢版 |
2018/10/31(水) 16:32:33.65ID:8K2ZlZTx
(Defenderを切るのです…)
0898login:Penguin
垢版 |
2018/10/31(水) 16:40:31.82ID:tg1fbO7V
>>895
たとえば、
openbenchmarkにある、同じマシンでのsqliteへのinsertionテストで
ubuntuだと2.27秒の処理がwindows binaryだと24秒で十倍くらい
さらに同じマシンで
ubuntu:2.62秒、Ubuntu@wslで60秒
となってる
このベンチ取った人はopenbenchmarkの中の人
test suite見るとwindowsのsqliteは32bit版みたい
https://openbenchmarking.org/system/1810126-SK-WSLWINDOW35/Windows%2010%20October%20WSL
0900login:Penguin
垢版 |
2018/10/31(水) 17:06:58.50ID:u9fQvkoU
>>898
いくら32bitのEXEでも遅すぎる・・・ワロタww
0901login:Penguin
垢版 |
2018/10/31(水) 17:08:15.90ID:u9fQvkoU
遅いのはマジでNTFSのせいかもしれんな。
>>893を疑ったけどその通りみたいだw
0902login:Penguin
垢版 |
2018/10/31(水) 17:34:16.77ID:weiO8F14
前スレで自分がそもそもNTFSが遅いんじゃないかと書いたらボロクソに叩かれたのを思い出したわw
http://mao.5ch.net/test/read.cgi/linux/1468149353/715-721n

しかしNTFSってWindows Serverとかでも使われてるわけで、もしNTFSが原因で一桁遅いんだったら、IISとかSQL Serverとか遅くて製品として成り立たなくなっちゃうと思うんだけど、そういう話は聞いたことないしなあ。
0903login:Penguin
垢版 |
2018/10/31(水) 18:03:33.00ID:KHyUGfIf
>>898
NTFSが原因ってことは、
それがexFATにしたら10倍になるってこと?

exFATはえーなw
0904login:Penguin
垢版 |
2018/10/31(水) 18:04:53.43ID:KHyUGfIf
>>902
> 前スレで自分がそもそもNTFSが遅いんじゃないかと書いたらボロクソに叩かれたのを思い出したわw

そりゃそうだな。

NTFSが遅いと仮定するならば、NTFSから変更すれば
Windowsは爆速になると言っているようなもんだ

少し考えばありえないってことぐらいわかるだろう
0905login:Penguin
垢版 |
2018/10/31(水) 18:09:01.09ID:6HoLP0ek
Linux on VirtualBox on Windows はバリバリ速いよ。
NTFS上の1ファイルにファイルシステムがあるから?
やはりDefenderとかが悪さしているのかも。調べてみるか。
0906login:Penguin
垢版 |
2018/10/31(水) 18:15:06.29ID:KHyUGfIf
>>898
10倍っていうのはforkの遅さと一致するんだわ
俺の計測だと、Linuxではfork1回で0.2ミリ秒だがWSLだと2.5ミリ秒になる
たった10000回forkしただけでLinuxで2秒がWSLで25秒になるわけだ
0907login:Penguin
垢版 |
2018/10/31(水) 18:16:02.49ID:KHyUGfIf
>>905
> NTFS上の1ファイルにファイルシステムがあるから?
1ファイルだろうが、アクセスはブロック単位だろw

ほれみろ、Linux on VirtualBox on Windows がバリバリ速いことからも
NTFSに原因がないってことは明らかじゃねーかw
0908login:Penguin
垢版 |
2018/10/31(水) 18:16:35.30ID:KHyUGfIf
ちなみにSQLiteも1データベース=1ファイルなので
1ファイルだと速いことは否定される
0909login:Penguin
垢版 |
2018/10/31(水) 18:18:46.76ID:KHyUGfIf
>>902

WSLで遅い
WindowsはNTFSだ

この2つになんの関連も示せてないのに、NTFS使ってるから遅いんだって
言ってるから馬鹿にされるわけで

例えばNTFSだと遅いならば他の条件を同じにして
NTFSからexFATに変えるとかして検証ができるはず
0910login:Penguin
垢版 |
2018/10/31(水) 18:44:48.74ID:6HoLP0ek
>>906
これでテストしてみた。
while :; do date; done | uniq -c
Hyper-V動かしているUbuntuとの比較だけど、こんなに違うんだよな。
・Hyper-V
1598 2018年 10月 31日 水曜日 18:36:16 JST
・WSL
48 2018年 10月 31日 水曜日 18:35:47 JST
Disk I/O の話ではなくなってるけど。
0911login:Penguin
垢版 |
2018/10/31(水) 19:22:20.53ID:6HoLP0ek
上記のテストは、ウイルススキャンの影響も受けるようです。
47 2018年 10月 31日 水曜日 19:18:07 JST
47 2018年 10月 31日 水曜日 19:18:08 JST
47 2018年 10月 31日 水曜日 19:18:09 JST
47 2018年 10月 31日 水曜日 19:18:10 JST
136 2018年 10月 31日 水曜日 19:18:11 JST ← McAfee VirusScan のオンラインスキャンを手動停止
167 2018年 10月 31日 水曜日 19:18:12 JST
162 2018年 10月 31日 水曜日 19:18:13 JST
129 2018年 10月 31日 水曜日 19:18:14 JST
153 2018年 10月 31日 水曜日 19:18:15 JST
152 2018年 10月 31日 水曜日 19:18:16 JST
153 2018年 10月 31日 水曜日 19:18:17 JST
151 2018年 10月 31日 水曜日 19:18:18 JST
36 2018年 10月 31日 水曜日 19:18:19 JST ← しばらくすると 停止していた Window Defender が動き出す
27 2018年 10月 31日 水曜日 19:18:20 JST
26 2018年 10月 31日 水曜日 19:18:21 JST
27 2018年 10月 31日 水曜日 19:18:22 JST
24 2018年 10月 31日 水曜日 19:18:23 JST
0912login:Penguin
垢版 |
2018/10/31(水) 19:37:58.06ID:KHyUGfIf
>>991
おお、すげぇ。確かに速くなった。

とある処理を各シェル実行してるんだが、だいたい速くなった
一つkshだけ殆ど変わらなかったが、このシェルの特徴として他のシェルでは
サブシェル(forkが行われる)で実行する所をサブシェル使わずに
高速化してるのでこの結果は納得がいく所

参考 http://magicant.txt-nifty.com/main/2007/12/post_b430.html

プロセス起動時のメモリチェックでも時間がかかってるんだな
0913login:Penguin
垢版 |
2018/10/31(水) 22:31:13.29ID:K+Zm0bn7
日経Linux11月号の特別付録Windows版Linuxのすべてがわかる本、
買ってみたけどこれいらんなぁ
100ページとあるが、半分以上はLinuxのコマンド集とかになってるし、
今時点の記事なのにApril2018Updateに関わる事しか言ってないし
tmux書いてるなら罫線が乱れることも書けばよいのに(設定で直るけど
0914login:Penguin
垢版 |
2018/11/01(木) 01:15:23.03ID:YSSOTNb5
雑誌は安いが失った時間は高くつく
Windows Subsystem for GNUの速度測定をしてる君たちの着地点はどこなんだい?
0915login:Penguin
垢版 |
2018/11/01(木) 01:33:00.20ID:ukWML0sX
>>914
もう着地してる。遅い原因はわかったので、その機能を減らすことで
速度を上げることに成功した。WSLでも快適なツールに仕上がったよ
0916880
垢版 |
2018/11/01(木) 03:25:04.70ID:B4HSlXBB
日経Linux 11月号の付録の、WSL 特集、100 ページの冊子

コマンドの説明も、Windows のpowershell で処理して、Linux でgrep するとか、
powershell.exe 何々 | grep

Linuxのls を、Windowsのクリップボードに入れるとか、
ただし、改行がLF だけになるけど、
ls | clip.exe

Windows, Linux双方のコマンドが入り乱れて、なかなか面白い
0918login:Penguin
垢版 |
2018/11/01(木) 10:41:57.64ID:zrAWDiO/
>>917
めんどくせーな。
WSLでDebianパッケージのFFmpeg使ってたのに。
0919login:Penguin
垢版 |
2018/11/01(木) 10:50:34.87ID:ukWML0sX
>>918
プレビュー版を使わなければいい
0920login:Penguin
垢版 |
2018/11/01(木) 10:56:33.04ID:UGvjJoVP
新機能試したいならInsider Preview使うしかない。
WindowsごとHyper-Vに入れとけばいい。
0922login:Penguin
垢版 |
2018/11/02(金) 15:44:55.66ID:Qdg8eyUy
18272のWSLは残念なことになってるけどエクスプローラーに突如現れたWSLって名前のフォルダは何だろうな(こちらに同じように何も機能していない)
0923login:Penguin
垢版 |
2018/11/02(金) 22:57:11.27ID:oYfoVFEa
>>920
> 新機能試したいならInsider Preview使うしかない。

WSLはもう新機能じゃないじゃん。
安定版WSLが提供されてるのに、あえて開発版を使う必要はない
0924login:Penguin
垢版 |
2018/11/02(金) 23:03:05.32ID:eyr7ZKEC
WSLにも新機能出てくるから、
新機能試したいならInsider Preview使うしかないってのは別に間違いでもないでしょ

そういうのに興味ないなら別に追随しなくて良い
0925login:Penguin
垢版 |
2018/11/02(金) 23:35:19.39ID:6ft4OM4J
しかしIPの最新ビルドではWSLが動作しないのであった
0926login:Penguin
垢版 |
2018/11/02(金) 23:37:09.04ID:ptkULAu8
既存のWSLは実用的だけど、まだ伸びしろもある。
たとえば、wslpathは作りかけっぽいし、OpenGLはなんか変。
デーモンを自動実行する上品な方法もあったらいいなと思う。
0927login:Penguin
垢版 |
2018/11/03(土) 02:34:46.67ID:W8fhmCw9
>>924
なんか試したい新機能あるの?
0929login:Penguin
垢版 |
2018/11/03(土) 07:19:23.35ID:mDVABffR
最近だとdockerに必要なMS_SLAVEの
サポートがあった
0930login:Penguin
垢版 |
2018/11/03(土) 11:14:50.05ID:PfkSQJ7I
Dockerサポートする気があるのか
0931login:Penguin
垢版 |
2018/11/03(土) 11:39:36.88ID:W8fhmCw9
LinuxカーネルのAPIとの互換性を高くすればDockerが動くのは必然

Dockerが動くのを視野に入れてると思うが、
Dockerを個別にサポートしているのではなく、
Dockerが使用しているカーネルのプロセス分離とか
そういったAPIがWindows上に搭載された結果だろう
0932login:Penguin
垢版 |
2018/11/05(月) 22:31:00.46ID:9tNeL5VO
日経Linux 11月号に載っている、
端末上で動く、CUI のファイラー、ranger は、Ubuntu 16.04 で動きますか?

他には、LXD (Linux Containers)も動きますか?
0933login:Penguin
垢版 |
2018/11/06(火) 02:04:10.54ID:XLUOnSMa
動かしてみればいいじゃん
0934932
垢版 |
2018/11/06(火) 03:28:24.88ID:3phxz94y
Ubuntu 16.04 で、ranger をインストールできた

sudo apt install ranger

設定ファイルをコピーする。
ranger --copy-config=all
0936login:Penguin
垢版 |
2018/11/06(火) 11:12:00.67ID:ELX6+dT+
>>935
ついに、メモ帳がLFに対応するのか…
0937login:Penguin
垢版 |
2018/11/06(火) 12:22:22.96ID:bXr3BB3+
デフォルトの改行コードもLFでいい。
Macもとっくの昔にそうなってるし、テキストデータオンリーならそれで困らないと思う。
0938login:Penguin
垢版 |
2018/11/06(火) 13:21:43.67ID:7l+DzFcO
BOMも廃止しなさい
0939login:Penguin
垢版 |
2018/11/06(火) 13:54:50.57ID:CE01juj7
>>936
> ついに、メモ帳がLFに対応するのか…

もう対応してる。

rsyncを使ってバックアップで、改行コードがLFで
出してるのがあったんだが、サクッと確認するのが楽になった。
0940login:Penguin
垢版 |
2018/11/06(火) 14:41:01.16ID:bWVr+9b2
最新の安定バージョンでついに対応と言った936に対してもう対応してるとかアスペかよ
0941login:Penguin
垢版 |
2018/11/06(火) 14:47:18.58ID:CE01juj7
>>940

>>936が言ったのは、「ついに対応した」ではなくて
「ついに対応するのか」だからな。

つまり>>936は未来の話をしてる。
だから、もうみんなに公開されている安定版の
October 2018 Update ですでに対応していると言った。

理解できた?本物のアスペさん
0942login:Penguin
垢版 |
2018/11/06(火) 16:04:31.07ID:IyC5Rl4z
1809にした人は知ってる事だから、そいつが無知だったんだろ
0943login:Penguin
垢版 |
2018/11/06(火) 19:04:10.82ID:GGFQveOH
分割されたバイナリファイルをmsysのcat.exeで結合したら暗黙で改行コード変換されたことに気づけず苦しむところまでが遠足です。
0945login:Penguin
垢版 |
2018/11/06(火) 22:30:27.98ID:CE01juj7
>>943
catがテキストモードで開いてるわけねーだろ
変換なんかしねーよ。
0946932
垢版 |
2018/11/06(火) 22:45:44.30ID:3phxz94y
日経Linux 11月号には、

端末上で動く、CUI のファイラー、ranger の他にも、
mc というファイラーも載っている

ただし、どのバージョンのOS で動くかは、書いていないけど

sudo apt install mc
0947login:Penguin
垢版 |
2018/11/06(火) 22:51:34.92ID:3phxz94y
Windows のExplorer では、BOM 付きUTF-8 じゃないと、sjis と区別できないから、文字列検索できない

ただし、BOM付きにするとバグるアプリがあるから、漏れは、BOMなしにしている。
それで文字列検索は、WSL 側のgrep を使う
0949login:Penguin
垢版 |
2018/11/06(火) 23:00:04.91ID:hVtyeU5d
iconvは入力文字のコードがUTF8前提で、最初7ビットアスキーの範囲で途中からSJIS交じりのファイルを変換させると字化けしまくるバグ(ばぐ?しよう?)があるからキライ。
0950login:Penguin
垢版 |
2018/11/06(火) 23:03:49.50ID:CE01juj7
> iconvは入力文字のコードがUTF8前提で、

入力文字コードの指定ぐらいしろ
本当にアホ
0951login:Penguin
垢版 |
2018/11/06(火) 23:24:13.86ID:m1ufrJ5r
iconvで-f指定しないでCP932を変換しようとする猛者か
0952login:Penguin
垢版 |
2018/11/07(水) 00:18:48.52ID:mxffy5Jo
天才的なバカ現るw
0953login:Penguin
垢版 |
2018/11/07(水) 01:08:21.23ID:tPtVSurb
わかってねえのはてめえらだ!
天才は何をしても許されるんだぞ〜!
0954login:Penguin
垢版 |
2018/11/07(水) 01:23:59.46ID:ms4ssKlr
ウェブページのHTMLを、ウインドーズのメモ帳で開くと、ダーーーーーーーーーーっと全部一行に表示されたことありますよね?
その現象が、ウインドズーを他のオペレーティングシステムと連携させて使用する上での最大の問題点の見える化です。

この問題は一見簡単に解決できそうですが、実際は今の人類のIT技術では解決不可能です。
格段にAIが進歩すれば、あるいはギリギリ解決できるかできないか、それぐらい難しいテーマです。
この問題を解決できる究極アルゴリズムを発明できる人なら、次のgoogleになれます。
0955login:Penguin
垢版 |
2018/11/07(水) 01:50:05.88ID:v7o9U8jP
意訳「メモ帳が改行コードLFに対応したんだよ」というレスをしてください。お願いします。
0956login:Penguin
垢版 |
2018/11/07(水) 02:00:00.64ID:D9iFbs5Q
>>941
一般提供絶賛停止中なのに安定版とかw
0957login:Penguin
垢版 |
2018/11/07(水) 02:28:25.27ID:nOyk7sd9
>>954
10/3 から正常にメモ帳で参照できるようになりました。不思議です。
0958login:Penguin
垢版 |
2018/11/07(水) 02:42:41.51ID:ms4ssKlr
>>957
究極アルゴリズム、完成していたのか…!
0959login:Penguin
垢版 |
2018/11/07(水) 11:11:21.61ID:MDpN/AEY
すげえマジレスするけど、一度スプリットして再度改行コード入れるだけやで。
エディタの改行コードを選べれば解決なんやで。
windowsの問題はsjisと改行コード。これをスッキリ解決してくれたらネイティブで使えるし、
bashの連携もうまくいくねん。Bashだとすんなりうまくいくcurlのコマンドもwindowsネイティブなら
sjisで日本語送るからサーバーではねられて死ぬ。
0960login:Penguin
垢版 |
2018/11/07(水) 11:46:24.02ID:v7o9U8jP
>>959
日本語専用の文字コードであるsjisが
日本以外の世界中のWindowsで使われるわけ無いだろw
こう突っ込むと、sjisとか言ってたやつは逃げるんだよなw
0961login:Penguin
垢版 |
2018/11/07(水) 12:21:50.17ID:MDpN/AEY
>>960
世界規模で考えてるとはご苦労だな。俺もコンソールやコマンドプロンプトに日本語は打ちたくないけども
日本人だし、curlでアクセスしたいサイトは日本語のサイトなんだ。
俺は快適にPCを使うのに母国語が使えるっていうのは大きなポイントでね。
あとアジア圏には全く同じ問題がつきまとうんでそのへんの理解を頼むわ。英語が母国語の地域は少ないんだぞ。
0962login:Penguin
垢版 |
2018/11/07(水) 12:26:49.81ID:v7o9U8jP
> 世界規模で考えてるとはご苦労だな。

そりゃOSなんだから世界規模で考えてるだろ

で、いつからWindowsはSJISを世界規模で
使うようになったんだ?
いい加減嘘つくのやめろよ
0963login:Penguin
垢版 |
2018/11/07(水) 12:37:21.39ID:MDpN/AEY
>>962
煽るのは自由にしてくれたらいいんだが、展開が早すぎないか?
「windowsの問題がsjisと改行コード」の文節が「WindowsはSJISを世界規模で使う」になったんだ?
今回は人を嘘つきにするのが早いな。嘘つきくんと呼ぼうか。
ローカルな話と理解してくれるならローカルな問題だとわかりそうなもんだが、う〜ん、なにか別の意図があるに違いない。
僕の知らないグローバルななにかが。
あと、世界規模の話すると、海外PCから日本語見ると文字化けするんだよね。あれはグローバルな問題じゃない?
0964login:Penguin
垢版 |
2018/11/07(水) 12:38:59.89ID:HgmPaRgu
そういや、AIXのデフォルトってまだSJISなん?とっくに変わった?
0965login:Penguin
垢版 |
2018/11/07(水) 12:42:59.18ID:tPtVSurb
SolarisもSJISだったな。
0966login:Penguin
垢版 |
2018/11/07(水) 14:24:04.47ID:v7o9U8jP
>>963
そりゃ日本以外ではSJIS使ってないんだから、
SJISに問題はないってことになるからねw
0967login:Penguin
垢版 |
2018/11/07(水) 20:27:29.53ID:xIHeRZSi
SJIS時代の比較関数はUnicode対応された今でも世界中のWindowsで静かに生きている。
これは、Windows95とWindowsNTで同じソート結果が必要だったことによる。
0968login:Penguin
垢版 |
2018/11/07(水) 22:42:05.02ID:AYyN+HB9
>>965
EUCだよ
SJISにも設定出来るけどな
0969login:Penguin
垢版 |
2018/11/08(木) 00:46:31.68ID:Ueh2RoXc
>>957
メモ帳以外の普通のエディタは、文字コード・改行変換できる

Windows10 October 2018 Update(1809)では、WSL・Windows の自動変換ができるようになったのかも?

漏れのは、1803 だから、Ubuntu 16.04.5 だけど、未だに、Ctrl+C, Ctrl+V でコピペできない

winver というコマンドで、OS バージョンでも見てみれば?
0970login:Penguin
垢版 |
2018/11/08(木) 02:08:50.81ID:985q7oGK
1809は改行なおしに力いてれきたのな
まだ3だがうp知こない
はや来ぼんぬ
0971login:Penguin
垢版 |
2018/11/08(木) 03:10:46.46ID:Ueh2RoXc
Linux の端末では、コントロールキーはシグナルに使われるから、
ショートカットを使えないようにしているのか

Ctrl+Shift+C, Ctrl+Shift+V で、コピペ出来るようになるのかも
0972login:Penguin
垢版 |
2018/11/08(木) 03:16:29.59ID:HSa3bpy4
>>971
1809 ではそれでコピペができます
0974login:Penguin
垢版 |
2018/11/08(木) 18:01:17.21ID:h/WOFYgQ
Microsoft Storeにて2種類のLinuxディストロが配信開始
https://pc.watch.impress.co.jp/docs/news/1152338.html

Windows 10上でのLinuxの動作をサポートする「Windows Subsystem for Linux(WSL)」機能への追加Linuxディストリビューションの配信をMicrosoft Storeで開始した

配信が開始されたのはWLinux、OpenSUSE 15/SLES 15の2種類。
WLinuxに関しては有償での配布で価格は2,350円となっているが、現在期間限定で1,150円で販売されている。

このほか、ARM版Windows 10上のWSLにおけるUbuntu 18.04の動作が新たにサポートされ、
エクスプローラ上のコンテキストメニューからLinuxシェルが開けるようになったり、コンソール上でのコピーアンドペーストが使えるようになったりと、細かな機能追加もされている。
0975login:Penguin
垢版 |
2018/11/08(木) 21:33:18.91ID:zorDwTYQ
WLinuxなら自分で入れれば良いと思うんだけどな
githubで公開されてるんだから
特別なものでもなく中身Debianだし
0976login:Penguin
垢版 |
2018/11/08(木) 21:36:57.31ID:c9bskb9T
何言ってっだこいつ
0977login:Penguin
垢版 |
2018/11/08(木) 21:47:39.08ID:zorDwTYQ
何言ってんだも何も無料で入れられるって言ってるんだが?
0978login:Penguin
垢版 |
2018/11/08(木) 22:20:45.25ID:p9+Em52w
「何言ってっだ」という東北なまり?に微妙に心が安らぐ。
0979login:Penguin
垢版 |
2018/11/09(金) 00:19:12.35ID:nZbJ72jS
WSLに追加する手順を教えろくだせー
0981login:Penguin
垢版 |
2018/11/09(金) 01:02:32.29ID:eMu9wHXZ
WLinuxが記事になってる時、東南アジアにいて、Windowsの国と地域の設定を東南アジアの国にしてたせいか、WLinuxが100%割引になってたんよね
それで買った
0984login:Penguin
垢版 |
2018/11/09(金) 12:48:55.28ID:3WMswF4A
-OyomiオプションつきでWSL版mecabで開いた状態だと、Windows版mecabで同じ辞書フォルダを開けない。
Windows側でCreateFile()の共有指定をFILE_SHARE_READからFILE_SHARE_READ | FILE_SHARE_WRITEに変更して再ビルドすることで回避できた。
同じ問題が、いろんなアプリで起きそうな予感。

WSLで読み取りで開いているファイルにアクセスできないWindowsアプリとか潜在的に多そう。
ちなみにMSのCライブラリだとfopen(filename, "r") でFILE_SHARE_READ | FILE_SHARE_WRITEが指定されるので大丈夫。
CreateFile()というWindows固有のWin32APIを直接呼び出すコードで問題が起きる可能性がある。
読み取りで開くからといって共有指定をILE_SHARE_READ | FILE_SHARE_WRITE ではなくFILE_SHARE_READだけにするとハマる。
0985login:Penguin
垢版 |
2018/11/09(金) 13:10:43.96ID:93OjXMJz
なんだそのクソ仕様は・・・
0986984
垢版 |
2018/11/09(金) 13:51:52.09ID:3WMswF4A
説明補足。Mecabは、オープンソース 形態素解析エンジン。
以下URLが公式。多分。
http://taku910.github.io/mecab/

>>984 で再ビルドしたってのはソースを修正してmecabバイナリ群をリビルトしたという意味。
CreateFile()を呼び出している箇所は一ヶ所だけなので修正はさほど手間ではない。

開発者の方には、そろそろMecabの最新版を公式リリースしてもらいたい。64bit対応とかあるだろうし。
なお、Mecabの最終更新が2013-02-18と5年以上前。

Mecabに限らず、WSLとWindowsで同時にファイルを開くアプリは要注意。
Bzという割とメジャーなバリナリエディタもCreateFile()の共有指定がFILE_SHARE_READだけなので同じ現象が起きる。


この件、WSLの仕様がおかしいようにも思える。
0987login:Penguin
垢版 |
2018/11/09(金) 14:01:12.91ID:93OjXMJz
WSLのファイルシステムかメタデータ周りの問題かもな。
WSLなんて所詮オマケみたいなもんだ。遊びでしか使えん。
0988login:Penguin
垢版 |
2018/11/09(金) 14:14:02.13ID:+MT3NdP/
>>986
えとさ、安全かどうかでちゃんと考えてる?

読み取りで開いているって言ってるけど、
読み取り専用じゃねーからな。読み込み共有モードだからな

私は読み取りしかしない!と宣言してファイルを開いた時
その他のプロセスが書き込みしたら、一回目に読み取ったときと
二回目に読み取ったときでデータが変わってしまう

FILE_SHARE_READっていうのは自分が読み込みしかしない!と
宣言することじゃない。自分は書き込まないから他の人が読み込んでも
いつだって同じデータが読み取れるよ。
他の人は書き換えないと宣言するなら、読み取ってOKって言ってることになる。


同様にFILE_SHARE_WRITEは、自分はうまいことやるから
他の人書き込んでもOK!っていうことだ。

つまりは、自分は読み込みしかしないが他人に書き換えられたら困る!
ってときはFILE_SHARE_READだけにするんだよ
たいていは読み込み途中に書き換えられたら困るだろう?
mecabは他人に書き換えられてもOKと言ってるのか?
0989login:Penguin
垢版 |
2018/11/09(金) 14:15:35.87ID:+MT3NdP/
自分は読み取りしかしない!と宣言していても、
他人に書き換えられても大丈夫ってことにはならないからな
0990login:Penguin
垢版 |
2018/11/09(金) 14:38:57.87ID:30xrhl21
Bzでの再現手順教えてくださいな
wsl上のemacsでc:/wsl/test.txtを開いたまま
win上のBz162でc:/wsl/test.txt開いてみたけど
問題なく開けるのでどうすればいいのかわからない
0991login:Penguin
垢版 |
2018/11/09(金) 15:03:07.22ID:3WMswF4A
>>988
書き込み側、読み込み側、どちらかが優先されるべきかは
それはアプリ次第であって、こうすべきと決めつけるものでもないでしょう。
起動中の読み取りアプリを犠牲にしてでも書き込み優先するという割り切り方もある。

>>990
後学のためにmecabをインストールしてみては?
0992login:Penguin
垢版 |
2018/11/09(金) 15:22:02.65ID:30xrhl21
>>991
mecabでの再現の手順教えてもらえますか?
それよりはBzのほうが簡単だと思ったので、Bzで訪ねたんですけど
レス数が950を超えています。1000を超えると書き込みができなくなります。

ニューススポーツなんでも実況