프로그래밍 QnA

luftpalen의 이미지

파이프 질문입니다~

Wrox 빨간책 Beginning of Linux Programming 에서 파이프 관련 예제를 똑같이 쳤습니다.

[code:1]
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define BUFSIZE 256
int main()
{
FILE* read_fp;
char buffer[BUFSIZE+1];
int chars_read;

memset(buffer, 0x00 , sizeof(buffer));
read_fp = popen("ps -ax", "r");
if(read_fp != NULL)
{
chars_read = fread(buffer, sizeof(char), BUFSIZ , read_fp);
while(chars_read >0)

jungjury의 이미지

float 4바이트에서 int 2바이트로 값 이동시 엉뚱한 값이....

float 4바이트에서 int 4바이트로 이동시에는 값이 이상없는데

float 4바이트에서 int 2바이트로 이동하면 엉뚱한 값이 나옵니다..

소수점이하만 잘리고 못 들어가는 건가요?

cppig1995의 이미지

새로운 FS개발 관련 질문 : GUID와 PID

파티션GUID는 32바이트로 이루어진 코드 맞나요?
얼핏 들은 바에 의하면 16비트는 파티션종류 고유,
나머지 16비트는 파티션마다 고유라고 하네요.
(그렇다면 cpFS 파티션종류고유 GUID는
3C7028D1-5D54-6C60 입니다.)

그리고 MBR에 있다는(?) 파티션ID가
(=0x83이 Linux이고, 0x05가 DOS고, ...)
20, 6A-6D, 6F, 79-7D 가 빈 자리 맞나요?
빈 자리 맞다면 이것들은 Oink 커널에서 선점했습니다.
GAME OVER :twisted:

20 : cpFS Primary
6A-6D : cpFS 버전별 (cpFS, cpFS++, cpFS--, 예약)
6F : cpFS고유 Swap이나 Cache등을 위해 예약

jjjjtj의 이미지

[질문] mpg123 에서 wave 파일 생성하는거요

:roll:
mpg123을 이용해서 mp3 player를 만드는 중입니다.
테스트삼아 wave 파일을 만들고 싶은데, 아무릴 소스를 뜯어봐도 잘 모르겠네요. 이쪽으로 워낙 아는게 적어서.
옵션에도 포함이 안되있거든요. 버전은 꼭 이 버전으로 해야하고.
-s 옵션으로 stdout쪽 옵션을 수정해서 하려고 했는데 잘 안되고,
어떻게 소스 수정/작성해야 하는지 방향만이라도 알려주셨음하네요.
여기 검색해도 잘 안나오네요.

아시는분 답변 부탁해요 ㅡ.ㅜ

jungjury의 이미지

printf 함수에서 \n을 사용 안할시 문제가 발생하는 경우가 있는지요..?

검색을 해보니 버퍼링을 하기 때문에 printf 함수 사용시 \n을 적어주지 않으면 의도하지 않는 결과가 나타날 수 있다고 하는데...

언제 그런 상황이 발생하는지요?

코드를 짜서.. 상황을 만들어 보려고 하는데.. 잘 안됩니다..

maner07의 이미지

메모리 맵, 부트스트랩 관련 질문입니다.

x86계열의 컴퓨터에서..
처음 컴퓨터가 시작되면 바이오스의 내용을 읽고 실행합니다.
그런데 이때 실행 되는 바이오스 코드는 RAM으로 읽어들여서
실행되는 것인가요? 아니면 그냥 CPU가 읽고 실행하는 것
뿐인가요?

그리고 책에 보면 다음과 같은 메모리 맵이 있는데
| |
~~~~~~~~~~~
| 확장 메모리 영역 |
---------------------- FFFF:FFFF
| 롬 바이오스 영역 |
---------------------- C000:0000
| 컬러 텍스트 모드 |
| 비디오 메모리 |
---------------------- B800:0000

superkkt의 이미지

static으로 선언된 함수를 헤더파일에 쓰면 경고가 나오네요..

[code:1]#ifndef _HAVE_DATA_RECV_H
#define _HAVE_DATA_RECV_H

#include "kftp.h"
#include <stdio.h>

#define ACK_STRING "HEADER_OK"
#define PREAMBLE "TEST"

static char *err_msg[] = {
"Invalid header message\n",
"Header message receive error\n"
};

/*static char read_header(char *buf, struct file_info *filestat);
static void header_ack(FILE *fp, int sockfd);*/
void header_recv(struct file_info *filestat, int sockfd);
void data_recv(struct file_info *filestat, int sockfd);

superkkt의 이미지

이런 경우는 어떻게 처리하는게 좋나요?

주제를 뭘로할지 마땅치가 않네요.. 현재 간단한 파일 전송 프로그램을 짜고 있습니다.

/*
 * 전송된 데이터 기록
 */
void
data_write(FILE *fp, char *buf, int cnt, int sockfd)
{
	if(write(fp, buf, cnt) != cnt) {
		err_print("data write error");
		finish(fp, sockfd);
	}
}

위 함수는 네트웍으로 전송된 데이터를 넘겨주면 그걸 파일에 기록해주는 역할을 하는데요.. 일단 함수에 넘겨준 내용만큼 쓰기를 못하면 에러를 출력하고 종료하도록 만들었습니다.

facered79의 이미지

mysql ERROR (2006) -&gt; MySQL server has gone away 에 대한 질문

휴... 많이 찾아 보고 이런 저런 방법들을 적용해 봤는데 도무지 해결이 안되네요..

제발 그냥 지나치지 마시고 질문만이라도 끝까지 읽어주시면 감사하겠습니다..

일단 mysql 사용하는 소스코드의 구조는 이렇습니다.

thread_1 --- function_1----temp_table(thread 1 을 실행하면 temp_table를 select 하는 쿼리를 보냅니다. thread 1 에서는 이 과정이 문제 없이 수행됩니다.

thread_2 --- function_2 ----temp_table(thread 1 을 실행한 바로 아랫 라인에 thread_2 를 실행합니다. 하는 일은 thread 1과 같은 일을 합니다.)

cococo의 이미지

공유 메모리 혹은 메시지 큐에서, ID를 얻는 방법에 대한 질문입니다.

두개 이상의 작업이 서로 데이터를 교환해야 하는데요. 작업을 pthread_create() / fork()로 생성시킬 가능성이 둘 다 있습니다.
이 때, 메시지 큐 방식을 이용해 데이터를 교환하려 하는데요.
최초 메시지 큐를 생성시킬 때에 모르는 것이 있어 질문 올립니다.
메시지큐를 msgget()으로 생성시킬 때, key값을 주잖아요?
근데, 이거... 암거나 정해도 되나요?
프로세스는 key값, 혹은 key값에 의거한 msgid를 기준으로 메시지를 교환하잖아요? 그럼 만일, 다른 어떤 프로그램이 메시지 큐 방식을 이용하고 있다면, 혹은 제가 프로그램을 실행한 후 다른 사람이 메시지 큐방식을 이용했을 때 우연히 저와 같은 키 값을 사용했다면, 데이터가 교환되 버리거나 프로그램 에러가 나 버리잖아요?

페이지

프로그래밍 QnA 구독하기