프로그래밍 QnA

kkokkokim14의 이미지

자바에서 JFrame안에서 동영상 구현

안녕하십니까^^

동영상파일을 jframe에서 배경으로 쓰고 싶어서 이렇게 글을 올리게 되었습니다.
동영상이 나오고 그위에 버튼이랑 다른 기능들을 구현하고 싶습니다
동영상은 그저 배경일 뿐이구요 이것이 가능합니까?

fantagia의 이미지

32byte 보다 struct 사용시 에러 질문입니다. on gcc

struct  kk{
        int a;
        int b;
        unsigned int c;
        int d;
        int e;
        int f;
        int g;
        int h; // 이 라인에서 에러가 찍힙니다.
        int i;
        int j;
};

8번째 int값에서 꼭 에러가 납니다.
에러 내용은 이렇습니다.
expected ':', ',', ';' ,'}' or '__attribute__' before '.' token

7번째 int값까지 찍고 나서 8번째에 뭐라고 쓰든지간에 꼭 에러가 납니다.

구글링을 한참 했지만 잘 모르겠어서 이렇게 질문글을 올립니다.

구글링 결과

1>
매크로 괄호를 안닫아서 그렇다는 소리가 있는데 그건 잘 했습니다.

yundorri의 이미지

Shm으로 공유된 pointer에서 new 연산자로 생성한 영역은 공유를 할 수 없을까요?

안녕하세요, 눈팅 회원입니다. ^^

두 프로세스 A,B는 shared memory로 데이터를 공유하고 있고 그 내부에는 "char* p" 가 있다고 가정하겠습니다.
프로세스 A에서 p = new char[65535] 정도로 할당을 하였는데요,
프로세스 B에서는 p에 memcpy() 등으로 write하려면 segmentation fault error가 발생하는데요,

생각을 해 보면 p는 A에서 생성하였든, B에서 생성하였든 새롭게 생성된 영역의 주소를 가리키는 거라면
A든 B든, 나중에 새로 shared memory에 붙을 수 있는 C든 관계없이 접근 가능해야 된다고 생각되는데요
저렇게 오류가 발생하니 당황스럽네요.

그래서 나중에 든 생각은 p를 공유한 것이지, A에서 생성한 영역을 공유한 게 아니라서 그런가 생각이 들기도 하고...
그렇담, shared memory내에 동적으로 메모리를 할당할 방법은 없는가 궁금합니다.

고수 님들의 조언 부탁드립니다.~

breakd의 이미지

C++ 관련 문제인데 매개변수를 많이 사용할 수 있다는것이 오버로딩인지 가변인자 매크로를 사용하는 건지...

제가 영어 번역을 못하는건지 문제 자체를 이해 못하는 건지 모르겠네요;
프로그래밍 언어론 교재에서
C++ also allows functions to accept more parameters than those specified in the function definition. Why and how is this possible?
라는 문제가 있는데

이게 함수의 오버로딩에 대한 문제인지 함수 가변인자에 관한 내용인지 모르겠네요.
가변인자는 C 에서도 쓸 수 있는 걸로 아는데...(맞죠?)
allows to 가 문장에 있다는건 C 에서는 없는데
C++에서는 허락한다는 의미가 내포되어 있는 것 같으니 가변인자는 아닌 것같은데

해석을 해보면 또 함수 정의에 기술 된 것 보다 더 많은 파라미터 받아들이는 걸 허용한다는데
또 이렇게 놓고보니 오버로딩인가 싶기도 하고..

게다가 영어 해석 질문인 것같아서 여기 질문 드리는 것도 애매하네요.. ㅜㅜ

inviolable의 이미지

freopen함수에 대한 설명(리눅스, 표준 c라이브러리이기도 함)좀 이해시켜주세요(책에 나와있는).

FILE *freopen(const char *restrict pathname, const char *restrict type, FILE *restrict fp); <- freopen 함수 정의.

FILE 객체는 곧 스트림을 뜻하는 것이고...

책에는 이렇게 설명이 되어있는데 대체 뭔말인지 모르겠습니다.

2.freopen 함수는 지정된 파일을 지정된 스트림으로 연다. 스트림이 이미 열려 있으면 닫은 후 다시 연다. 스트림에 지향이 설정되어 있으면 freopen은 그 지향을 지운다. 이 함수는 지정된 파일을 미리 정의된 스트림(표준 입력, 표준 출력, 표준 오류)중 하나로 여는 데 주로 쓰인다.

inviolable의 이미지

파일은 열려있으나 스트림은 없는 경우(파이프나 네트워크통신 채널을 생성하는 함수와 관련있는 것 같네요...)

Unix 고급 프로그래밍 제2판(번역자 류광, 원서 Advanced Programming in the UNIX environment) 165페이지 fdopen함수에 대한 설명에서요.

3. fdopen 함수는 기존 파일 서술자(open이나 dup,dup2,fcnl,pipe,socket,socketpair,accept 함수로 얻은)를 받아서 그 서술자에 표준 I/O 스트림을 연관 시킨다. 이 함수는 파이프나 네트워크 통신 채널을 생성하는 함수들이 돌려준 서술자를 스트림에 연관시키는 용도로 자주 쓰인다. 그런 특수한 종류의 파일들을 표준 I/O fopen함수로 열 수 없기 때문에, 해당 장치에 고유한 함수를 호출해서 파일 서술자를 얻은 후, fdopen을 이용해서 그것을 표준 I/O 스트림과 연관시켜야 한다.

그리고 조금 건너뛰어서 fdopen함수의 2번째 인수인 type에 대한 설명입니다.(fopen, freopen의 2번째 인수이기도 함 이 3함수는 모두 표준 I/O스트림을 여는데 사용됩니다.)

inviolable의 이미지

리눅스 시스템 프로그래밍 공부하는 초보인데요 파일과 스트림에 대해서 몇가지 질문이 있어요.

표준 I/O함수로(시스템 콜 함수인 write말고)로 입력한다고 하면요... 표준 입출력함수 호출 -> 버퍼링 -> 버퍼링 정책에 따라 버퍼에 일정량 량이 찼을 때(전체 버퍼링이면 버퍼 전체가 다 찼을 때, 줄 단위 버퍼링이면 새줄 문자가 입력되었을 때) -> write함수 호출 -> 커널 내부 버퍼에 저장 -> 대기열(큐)에 등록(sync함수, 데몬 프로세스가 30초마다 수행) -> 한가할 때 큐에 있는 내용이 디스크에 저장됨.

이런 과정인 거 맞나요??

유명한 책인 Advanced Programming the UNIX Environment의 번역본(류광님이 번역자세요)인 UNIX 고급 프로그래밍 제2판 이라는 책인데요.

3.13절(제3장은 파일 I/O)에 sync, fsync, fdatasync함수를 설명하면서 이런 설명을 하셨어요.

dissu의 이미지

C언어에서 wrapper main 함수

어떤 라이브러리를 사용하는 사용자가 제작한 main함수가 끝나기 전에 그 라이브러리에 존재하는 추가적으로 실행하고 싶은 메소드가 있는데요.

Wrapper exit 나 Wrapper printf 같은 경우 반환형과 인수들의 수와 타잎이 정해져 있으므로

Wrapper 선언과 필요하다면 가변인수처리를 통하여 Wrapper 함수를 만들 수 있었습니다.

하지만 main 함수는 사용자가 argument와 return 값을 설정 할 수 있기에 모든 경우를 고려해야 될것 같습니다.

이러한 모든 경우를 Wrapper main함수를 제작 할 수 있을까요?

페이지

프로그래밍 QnA 구독하기