프로그래밍 QnA

sun1226의 이미지

select로 sockfd 3개를 block하고있을때 동시에 3개의 신호가 오

select로 sockfd 3개를 block하고있을때 동시에 3개의 신호가 오면....
하나씩 일을 수행하죠?
동시에 수행 할 순없죠?

carrot의 이미지

gcc 에서 c소스를 어셈으로 바꾸는 방법

간단히 바꾸는 방법 없을까요..?
있다는 것은 아는데,,
맨페이지 찾아서 해도 제가 옵션을 잘 못 준건지 에러가 나네요.
-o 옵션으로는 실행 잘 됩니다..
.c로 짠 프로그램을 어셈소스로 바꾸는 방법
어떤 옵션을 주어야 하나요..?

sun1226의 이미지

pro*c 에서 db에서 select해온 문자열의 뒤 공백은 어떻게 없애

DB 테이블에 유해프로그램이 예를들어 starcraft.exe이 있다고 할때,
원격에서 유해프로그램이 3번이상 실행시켰을때 agent한테 kill메세지를
보내는 과정에서 처음에 agent가 agent프로그램을 실행할때
서버에서는 db에 저장되어있는 starcraft라는 목록을 보내주는데..
문제가 있습니다....문제는...
배열 char str[30];배열에 select해서 starcraft를 넣고 소켓으로 보내주는데
strlen(str)해서 찍어보니까 29가 나오더라구요...실제는 9인데..
NULL이 아닌 공백이 들어가는것 같더라구요..그래서 agent에서 비교가 안되서 고생을 하고 있습니다...

dydtjsakstp의 이미지

FTP에서 폴더를 만들거나 지운 IP를 알수없나요?

시스템에서 특정 폴더를 지운다면 그 IP를 다른곳에다 저장하거나
메일로 오게 프로그래밍할수는 없나요?
어떻게 해야하는지 좀 부탁드립니다...그럼...

조성현의 이미지

하나의 문자만 입력 받을 때(getch와 비슷하게) in Java

getch와 비슷한 함수가 자바에 존재하는지 모르겠습니다.

api 문서를 계속 뒤져도 :shock: 나오지가 않는 군요.

보통 EOF나 Enter를 눌러야만 인식을 하게 되더라구요.

물론 socket 메소드에서의 setSoTimeout 메소드를 사용해서 타이머를 측정해도 되겠지만, NonBlocking도 해야겠고(이것도 못찾겠음), 아무튼 여러가지 손이 들어가게 되더군요.

딱 한 문자만 입력 받고 싶습니다.

vim 편집기에서와 같이 h,j,k,l 키를 누르면 움직이는 상태와 같이 말입니다.

어떤 상태를 말씀 드린지는 아실 거라 생각이 듭니다.

mon12key의 이미지

쓰기 권한 없는 파일만 복사하기

제목처럼
쓰기 권한 없는 파일은 복사하고, 쓰기 권한이 있는 파일은
심볼릭 링크를 할 생각입닌다.
이때 쓰기 권한이 없는지는 어떻게 판단해야 할지요?
쓰려 하는데 "Access deny"가 오면 권한이 없다는 맞는 말이만,
왠지 편법 처럼 느껴지네요.
현재 프로세스가 다른 파일에 쓸 권한이 있는지를 나타내는

시스템 콜이나 라이브러리 없나요?

leolo의 이미지

[긴급]전역으로 선언한 메모리의 해제..

아래와 같이 전역으로 선언한 메모리 구조에서도
메모리 누수가 발생하는지요..
메모리 동적 할당이 아닌 이상, 다음과 같이 잡고
프로그램이 정상적으로 종료 되면.. 메모리는 해제 되는지 알고 싶습니다.
만약, 이 프로세스가 좀비가 된다면,
또 한 어떠한 상황이 발생하는지요. 좀비가 된 후에
죽어 없어진다면요..

끝으로 메모리 누스를 체크하는 방법을 알려주세요..
툴 말고요.. 임베디드보드에서 사용하는지라.. 툴로는 힘듭니다.
/proc/meminfo로 확인하는 방법 좀 알려주세요..

alfalf의 이미지

fopen64와 -D_GNU_SOURCE와의 관계

8GB 정도의 크기를 가지는 파일을 핸들 할일이 있어 fopen64를 사용했는데 그냥 컴파일 했더니 아래와 같은 경고 메세지가 떠서

warning: implicit declaration of function `fopen64'
warning: assignment makes pointer from integer without a cast

gcc 컴파일시 -D_GNU_SOURCE 옵션을 주었더니 경고없이 컴파일이 잘 되네요.

물론 fopen 함수에 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 옵션으로 컴파일 해도 잘 되기는 하지만 아래와 같은 의문이 생기네요.

궁금한것은 fopen64와 GNU와 어떤 관계인가 하는 겁니다. fopen64가 glibc에서만 지원되는 함수인가요? 그리고 다른 시스템에서는 대형 파일을 다룰때 fopen만으로 가능한건가요?

inootis의 이미지

[c/c++] 파일 내용을 수정할때....

파일 내용을 수정할때.....
처음부터 수정할부분 앞의 내용까지 새파일(임시파일)에 쓰고..
수정될 내용 쓰고..
수정할부분부터 끝까지 쓰는 방식을으로 임시파일을 생성해서 하는 방법이 있는데.. 이런 방법 말고 다른 방법은 없는건가요? (뭔가 더빠른 방법이 있는것 같은데 ㅜㅠ)

제가 하나 생각해본 방법은(될지 않될지는 테스트를 안해봐서.) 임시파일을 이용하지 않고 원본파일의 수정할 부분까지 파일포인터를 옮긴후 거기서 부터 파일을 써도

bucketquai의 이미지

fpurge 말인데요

fpurge 함수 말인데요
이거 사용하지 않고 입력 버퍼를 지울 수 없을까요?
문제가 생기는 경우는 fgets에서 정해진 버퍼를 넘어서 입력이 될때인데
예전에는 받아놓은 str의 끝 바이트가 '\n'인지 체크해서 아닐경우에는
while((ch=getc(stdin))!='\n'); 를 때려주곤 했는데 요새는 fpurge를 사용하고 있습니다 그런데 man을 자세히(?) 보니 ansi가 아니더군요 - -;;
더 예쁘게 해결할 수 없을까요? :)

페이지

프로그래밍 QnA 구독하기