回答編集履歴

2

誤字修正

2019/05/01 03:11

投稿

tacsheaven
tacsheaven

スコア13703

test CHANGED
@@ -18,13 +18,13 @@
18
18
 
19
19
  + を付けると読み・書きのもう一方の処理も可能になる、という機能を持っています。
20
20
 
21
- ですので、w+ でオープンすると読み込みが可能になるのですが、初期状態では(当然ながらファイルが切り捨てられているので)違いがありません。
21
+ ですので、w+ でオープンすると読み込みが可能になるのですが、初期状態では(当然ながらファイルが切り捨てられているので)w と違いがありません。
22
22
 
23
23
 
24
24
 
25
25
  違いはファイル操作の途中にあります。
26
26
 
27
- w+ であればファイルシークして「一度書いたものを読み込む」ことができる、のです。
27
+ w+ であれば w と違い、ファイルシークして「一度書いたものを読み込む」ことができる、のです。
28
28
 
29
29
 
30
30
 

1

サンプルコードを追加

2019/05/01 03:11

投稿

tacsheaven
tacsheaven

スコア13703

test CHANGED
@@ -1,7 +1,3 @@
1
- もともとは UNIX のシステムコールまで遡ることになりますが、詰まるところは「他のオプションとの整合性を取ったため」ではないかと思います。
2
-
3
-
4
-
5
1
  |オプション|意味|詳細|
6
2
 
7
3
  |:--:|:--|:--|
@@ -20,6 +16,68 @@
20
16
 
21
17
 
22
18
 
23
- ということで、r と a には + を付けるで、もう一方の処理も可能にるという機能になっています。
19
+ + を付けると読み・書きのもう一方の処理も可能にという機能を持っています。
24
20
 
25
- これと整合性を取る目的で、w に実際には意味が)+ 許可されている、とう事かと思い
21
+ すので、w+ でオープンすると読み込みが可能なるのですが、初期状態では当然ながらファイル切り捨てられているので)違がありせん
22
+
23
+
24
+
25
+ 違いはファイル操作の途中にあります。
26
+
27
+ w+ であればファイルシークして「一度書いたものを読み込む」ことができる、のです。
28
+
29
+
30
+
31
+ ```PHP
32
+
33
+ <?php
34
+
35
+
36
+
37
+ $fp = fopen('./fopen.txt', 'w+');
38
+
39
+ fwrite($fp, "ABCDE\n");
40
+
41
+ fflush($fp);
42
+
43
+ fseek($fp, 0, SEEK_SET);
44
+
45
+ echo fgetc($fp);
46
+
47
+ fclose($fp);
48
+
49
+
50
+
51
+ ?>
52
+
53
+ ```
54
+
55
+ この結果は 'A' が出力されます。
56
+
57
+
58
+
59
+ ```PHP
60
+
61
+ <?php
62
+
63
+
64
+
65
+ $fp = fopen('./fopen.txt', 'w');
66
+
67
+ fwrite($fp, "ABCDE\n");
68
+
69
+ fflush($fp);
70
+
71
+ fseek($fp, 0, SEEK_SET);
72
+
73
+ echo fgetc($fp);
74
+
75
+ fclose($fp);
76
+
77
+
78
+
79
+ ?>
80
+
81
+ ```
82
+
83
+ こちらだと何も表示されません。