X



トップページLinux
1002コメント312KB
【Bash】Windows Subsystem for Linux【WSL】3
レス数が1000を超えています。これ以上書き込みはできません。
0993login:Penguin
垢版 |
2018/11/09(金) 15:34:43.90ID:3WMswF4A
>>992
以下のプログラムをWSLでコンパイルし、第一引数に開きたいファイルパスを渡して実行してください。
次に、Windows側で同じファイルをBzで開こうとすれば再現します。なお、当方は64bit版Windows10。
使っているWSLはUbuntu 18.04.1 LTS

#include <cstdio>
#include <unistd.h>
#include <fcntl.h>
#include <sys/mman.h>

int main(int argc, char* argv[])
{
const char* filename = argv[1];
int fd = ::open(filename, O_RDONLY);
int prot = PROT_READ;
char *p = reinterpret_cast<char *>(::mmap(0, 1024, prot, MAP_SHARED, fd, 0));
printf("%s %d %p\n", filename, fd, p);
fputs("input [ENTER].\n", stdout);
fgetc(stdin);
::close(fd);
fputs("bye.", stdout);
return 0;
}
0994login:Penguin
垢版 |
2018/11/09(金) 15:54:06.61ID:30xrhl21
>>993
ありがと
wsl内部でファイルをreadonlyで開いても、windows側からはSHARE_RWで開いたとみなされて
SHARE_Rだけのcreatefileだとコケるという話ですね
fall 2018 updateでwslfsへ変換した環境でも再現できた
0997login:Penguin
垢版 |
2018/11/09(金) 16:03:18.95ID:3WMswF4A
>>988
> えとさ、安全かどうかでちゃんと考えてる?

たかが読み取りオンリーなプログラムの分際で、自分の安全しか考えない身勝手なプログラムはダメでしょう。
読み取り側が排他ロックしたい時だけロックするべきで、それ以外の時は書き込み側を優先するのが基本でしょう。
0999login:Penguin
垢版 |
2018/11/09(金) 17:09:55.48ID:3WMswF4A
スキルの低い人ほど宗教的な信条を他人に押し付けたがる法則
1000login:Penguin
垢版 |
2018/11/09(金) 17:10:47.97ID:3WMswF4A
スキルの低さを宗教的な信条で補っているともいえる。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 157日 12時間 21分 7秒
レス数が1000を超えています。これ以上書き込みはできません。

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