2015-02-03 7 views
0

전자 코드에서 txt 파일에 쓰고 C 코드에서 같은 파일에 쓰는 방법이 있습니까?동일한 txt 파일에 langue 및 C 언어로 쓰기

감사합니다.

+3

'전자 코드'란 무엇입니까? C는 잘 알려진 언어이므로, 설명 할 필요는 없지만'e'는 우리 대부분에게 명확하지 않습니다. – abelenky

+0

아마도이 [힙 스터 언어] (http://en.wikipedia.org/wiki/E_%28programming_language%29) – dmg

+0

e는 HW 용 C 기반 언어입니다 – user1941008

답변

1

일반적으로 파일 액세스는 운영 체제에서 제어합니다.

운영 체제에서 제공하는 동기화 & 잠금 방법을 사용하면 프로그램을 임의의 수의 개별 프로세스에서 실행하여 동일한 파일에 액세스 할 수 있습니다.

일반적으로 파일을 공유 또는 단독 모드로 열고 읽기, 쓰기 또는 둘 다로 열고 파일링 옵션을 설정합니다. 또한 서로 다른 프로그램간에 mutex와 같은 잠금 메커니즘을 공유하는 작업이 포함될 수 있습니다.

static FILE *f = NULL; 
void cwrite() { 
    if (f == NULL) 
     f = fopen("ec.txt", "a"); 
    fprintf(f, "print from C\n"); 
} 

을 그리고 함께 전자 기록과 전자에서 사용 :

1

당신은 다음과 같은 C 코드를 가질 수

routine cwrite(); 
extend sys { 
    !f: file; 
    run() is also { 
     f = files.open("ec.txt", "a", "Text file"); 
     for i from 0 to 100 { 
      files.write(f, "print from e"); 
      cwrite(); 
     }; 
    }; 
}; 

그러나 까다로운 부분에서 리눅스 수준에 그,는 fopen입니다 C와 files.open은 동일한 파일에 대해 별도의 파일 디스크립터를 생성하므로 매우 이상한 결과가 발생할 수 있습니다.

동기화하려면 불필요한 성능 오버 헤드가 발생하지 않도록 파일을 닫은 상태로 유지하거나 한 언어에서만 실제로 작성해야하며 다른 언어에서 작성해야 할 경우 파일을 문자열로 보내야합니다 실제로 그렇게하는 것, 당신은 단지 그것을위한 간단한 API를 정의 할 필요가 있습니다.