emscripten을 사용하여 C 코드베이스를 작성하려고하는데 모든 I/O 호출에 대해 추상화 계층을 거칩니다. 내가 기대했던 일을하지, 그래서 나는 getline routine from here on StackOverflow 사용하여 간단한 테스트를 시도 :emscripten을 사용하여 표준 입력에서 읽기가 존재하지 않는 줄 바꿈을 얻습니다.
#include <stdio.h>
#include <stdlib.h>
// From: https://stackoverflow.com/a/314422/211160
char * getline_litb(void) {
char * line = malloc(100), * linep = line;
size_t lenmax = 100, len = lenmax;
int c;
if(line == NULL)
return NULL;
for(;;) {
c = fgetc(stdin);
if(c == EOF)
break;
if(--len == 0) {
len = lenmax;
char * linen = realloc(linep, lenmax *= 2);
if(linen == NULL) {
free(linep);
return NULL;
}
line = linen + (line - linep);
linep = linen;
}
if((*line++ = c) == '\n')
break;
}
*line = '\0';
return linep;
}
int main() {
puts(getline_litb());
return 0;
}
을 GCC에서 컴파일 또는이 잘 작동 연타. Enter 키를 누를 때까지 문자열을 읽고 그 문자열을 반환합니다. 나는 그것을 컴파일 할 때 :
emcc test.c -o test.bc
emcc test.bc -o test.js
node test.js
그것은 거기에 줄 바꿈이의 입력 생각, 그래서 빈 줄을 인쇄하고 나에게 입력 할 수있는 기회를 제공하지 않습니다. 어떤 아이디어?
댓글 작성/upvoting에서 (오래 걸리는) 지연에 대해 매우 유감스럽게 생각합니다. 이 문제는 다른 사람들이 찾아 냈습니다 ... 그리고 어떤 진전이 있었기 때문에지도에이 Q & A를 올려서 체중을 측정 할 것입니다. 그래서 그들은 그들이 무엇을했는지에 관해 여기에서 차임 할 것입니다! – HostileFork