2011-08-16 2 views
42

Ruby의 새로운 프로그램입니다. 루비에서 r +, w +, a + 모드로 파일을 여는 것에 대한 예를들 수 있습니까? 그들과 r, w, a의 차이점은 무엇입니까?Ruby의 파일 열기 모드

예를 들어 설명해주십시오.

답변

85

파일 열기 모드는 실제로 루비에만 국한되지 않으며 IEEE Std 1003.1 (Single UNIX Specification)의 일부입니다. 당신은 여기에 대한 자세한 내용을보실 수 있습니다 :

http://pubs.opengroup.org/onlinepubs/009695399/functions/fopen.html

r or rb 
    Open file for reading. 

w or wb 
    Truncate to zero length or create file for writing. 

a or ab 
    Append; open or create file for writing at end-of-file. 

r+ or rb+ or r+b 
    Open file for update (reading and writing). 

w+ or wb+ or w+b 
    Truncate to zero length or create file for update. 

a+ or ab+ or a+b 
    Append; open or create file for update, writing at end-of-file. 

'b는'이진 파일을 의미 편지를 포함 모든 모드. 'b'가없는 경우 '일반 텍스트'파일입니다.

'열기'및 '갱신 오픈'의 차이로 표시된다 :

파일이 업데이트 모드 열면 ('+'모드 인수의 두 번째 또는 세 번째 문자 등), 입력 및 출력 모두가 연관된 스트림에 대해 수행 될 수있다. 그러나 응용 프로그램은 출력이 fflush() 또는 파일 위치 지정 함수 (fseek(), fsetpos() 또는 rewind())를 호출하지 않고 직접 입력을 따르지 않도록하고 입력에 직접 따라 가기 입력 조작이 파일의 끝을 발견하지 않는 한 파일 위치 지정 기능에 대한 중간 호출을하지 않고 출력합니다. 다음은 파일에 추가하는 방법을 보여줍니다 빠른 예제에 관심이 사람을 위해

+0

:'에코 "는 foobar"> some_file && 루비 -e 'File.open를 ("some_file", "A") {| f를 | f.puts "catdog"} '' – mbigras