프로그래밍 QnA

kjyong98의 이미지

c언어 Low level 코딩을 통한 파일 입출력 성능 극대화

c에서 read/write와 fread/frwite가 상황에 따라서 속도차이가 있는것으로 알고있습니다.
저는 전자가 시스템 콜 함수이기때문에 커널에 직접 접근을해서 무조건 빠를줄 알았는데 그게 아닌것같더군요.
가장 큰 이유는 버퍼사용 유무에 있는것같구요.
하지만 단순히 파일 입출력 속도만을 놓고 봤을 때 stat 구조체의 st_blksize 변수를 이용해서 대상 파일의 블록 사이즈를 읽어와서 해당 블록 크기단위로 read/write한다면 성능을 가장 극대화할 수 있다는 정보를 알게되었는데 이게 맞는말인건가요?

tekuph의 이미지

C++ 특수문자열 질문드립니다.

안녕하세요.
C++로 오목을 제작하려고 합니다.!
깔끔하게 만들고 싶어서 특수문자를 특수문자를 통해서
만들었는데 먼가 홀쭉하게 나오길래 특수문자열 사이에 공백을 집어 넣엇더니
제가 원하는대로 출력되더라고요.
그런데 오목이면 돌을 두어야 하는데 스트링 자체에서 지원하는
리플레이스나 엣같은것을 써보아도 별로 화면이 글자가 깨지거나 오목판이 밀려서 출력되던데
안꺠지게 출력하는 방법이 있을까요?! ○●
특수문자를 넣고 사이즈 오브를 돌려봣는데 먼가 "" '' 이거 바꿔도 한바이트는 차이나고
엄청 어렵던데 어떻게 해야 할지 감이 안잡히내요.

khanai의 이미지

프로그램 작성중 문제가 있어서 질문드립니다.

안녕하세요. 프로그램 작성중 문제가 발생해서 질문드립니다.

제가 사용하고 있는 언어는 c++이고요
visual studio 2017에서 작업중입니다.

일단 오류는

gs_report.c에서
#endif /* defined (_M_IX86) || defined (_M_X64) */
__fastfail(FAST_FAIL_STACK_COOKIE_CHECK_FAILURE);

이부분이 호출되면서 발생했고요, 스택 쿠키 계측 코드가 스택 기반 버퍼 오버런을 검색했습니다.. 라고 합니다.

오류가 난 코드는 문자열, 실수형 자료들을 암호화하는 함수에 들어갔다 나올때 발생했는데.
함수내에서 코드가 돌때는 멀쩡하다가, 함수에서 나올때 오류가 발생했습니다.

참고로 debug 모드에서는 오류가 발생하지 않았는데, release모드에서 돌리니 오류가 발생하네요.ㅜㅜ

어떻게 해결해야 하는지 알려주시면 감사드리겠습니다. ㅜㅜㅜ

* 호출한 함수를 간략히 보여드리자면

square4fish의 이미지

c언어에서 문자열을 그대로 함수로 넘길수있나요?

int get_entry(ListType *list, int pos)
{
	 error("위치 오류");
}

char error(char *message)
{
	fprintf(stderr, "%s\n", message);
	exit(1);
}

이런식으로 만들어서 error함수에서 문자열을 그대로 받게하는게 문법상 가능한가요??

Newthink의 이미지

리눅스 세그멘테이션과 페이징기법에 의한 주소변환

안녕하세요ㅎㅎ

리눅스 메모리를 공부하고 있는 도중 궁금한 점이 생겨서 질문 드립니다.

CPU에서 나오는 논리주소(Logical Address)가 세그멘테이션 기법을 통해서 선형주소(Linear Address)로 변하고

페이징 기법을 통해서 물리주소(Physical Address)로 변하는데요.

리눅스는 세그멘테이션 기법보다 페이징 기법을 더 선호하는 것으로 알고 있습니다.

그렇다면 세그멘테이션 기법을 사용하지 않고 페이징 기법만 사용한다면

CPU에서 나오는 논리주소(Logical Address)가 바로 선형주소(Linear Address)가 되는 것인가요?

tiger6278의 이미지

struct 멤버가 포인터로 선언되었을때 동적할당

struct token_unit {
char *label;
char *operator;
char *operand[MAX_OPERAND];
char *comment;
//char nixbpe; // 추후 프로젝트에서 사용된다.

cg3980의 이미지

머신러닝 커뮤니티도 있나요?

KLDP는 개발자 커뮤니티고 다른 커뮤니티중에는 데이터베이스 커뮤니티도 있던데

ML 주제로 사람들 모이는 인터넷 커뮤니티도 따로 있나요?

papium의 이미지

tcp server/client 소켓통신 문의

tcp 클라이언트로 tcp 에코서버로 패킷을 전송했습니다.
flag까지 제대로 확인이 되었는데 상대 서버에서 ack 응답이 오지 않을 경우에는 어느쪽이 문제일까요?
클라이언트쪽의 eth 헤더와 ip 헤더 tcp 헤더는 문제없이 작성되어 보내진 것은 확인했습니다.
서버도 간단한 에코서버와 클라이언트로 데이터 통신을 했을 때 문제없이 작동한 서버였고요.

스니퍼로 확인했을 때

A -> B (port : 11112 -> 12343)
------------------------------
seq : 286335813 | ack : 0 | flag:00000010

로 클라이언트가 보낸 패킷만 확인되고 서버쪽에서 응답은 없는 상태입니다.

jinghwa의 이미지

linux localtime 함수 오류?? (c/c++)

로그파일을 일자별로 생성하고 있습니다.
아래는 로그 파일을 생성하는 함수인데요..

프로세스에서 MakeLog 함수 호출시 일자별로 ( 프로세스_날짜.log ) 생성되는 로그파일과 전체로그(프로세스.log) 를 둘다 write 하고 있습니다.
시스템에 총 6개의 프로세스가 떠있고 각각 thread 를 실행하는 구조이고요 이모든 프로세스에서 MakeLog를 통해 로그 파일을 생성합니다.

이상한 점은 전날 로그에다가 로그를 기록해요..
즉 오늘이 4/3일인데 4/2일 로그에 로그를 기록합니다. 매일 그런건 아니고요..
호출이 많은 경우인데 .. MakeLog 함수를 초당 24~100번 정도 호출한 경우 간헐적으로 발생합니다.

리눅스(redhat 7.2) 에서 localtime에 의한 날짜 계산이 잘못될 수도 있나요??
또는 File open을 많이 할 경우 FILE *fp 가 이전 날짜의 pointer 로 재할당 되거나 .. 그럴수도 있을까요?
fclose가 제대로 안되거나요.. ㅠㅠ

페이지

프로그래밍 QnA 구독하기