저장을 습관화

node.js로 백준 풀 때 EACCES 에러가 발생한다면 본문

코딩 테스트/백준 - 자바스크립트

node.js로 백준 풀 때 EACCES 에러가 발생한다면

ctrs 2024. 3. 13. 09:35

백준의 몇몇 문제에서는 자바스크립트의 fs 모듈을 지원하지 않는 경우가 있다.

 

그 동안 fs 모듈을 이용해 입력값이 저장된 파일의 내용을 불러오다가

갑작스럽게 readLine으로 변경하려면 퍽 당황스러운데,

readLine을 이용하지 않고도 그대로 fs 모듈을 사용할 수 있는 방법이 있어 메모한다.

 

런타임 에러(EACCES)는 권한이 존재하지 않아 발생하는 에러이며

이 권한은 입력값을 받아오는 "/dev/stdin"의 내용을 읽는 것을 말한다.

 

이 경우, readFileSync()의 내용을 아래와 같이 변경한다.

let fs = require("fs");
// 기존
// let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
// 런타임 에러 EACCES 발생 시
let input = fs.readFileSync(0, "utf-8").toString().trim().split("\n");

console.log(input);

파일을 읽어오는 경로만 변경해주어도 readLine이나 다른 언어로 바꿔서 풀어야 할 수고를 덜 수 있다.

 

개꿀

 

[참고]

https://www.acmicpc.net/board/view/137718

 

글 읽기 - Node.js 사용 시 런타임 에러(EACCES)가 발생한다면?

댓글을 작성하려면 로그인해야 합니다.

www.acmicpc.net