프로그래밍 QnA

eszasdwer의 이미지

kernel/sched.c --> schedule(void) 함수의 spinlock에 대해서 질문입니다

안녕하세요.

spinlock 에 대해서 공부하고 있는 도중에 schedule(void) 함수에 대한 내용이 이해가 안 가서 글을 작성합니다.

제가 이해한 바로는 preempt 는 CPU가 한 개 일 경우 해당 task가 preempt_disable 후 preempt_enable을 호출하기 전 까지 수행을 보장하는 것으로 압니다.

하지만 CPU가 여러 개일 경우에는 preempt 로는 critical section에 해당 CPU가 혼자서 수행을 하는 것이 보장되지 않으므로 spinlock을 사용하는 것으로 압니다. 따라서 구조도 preempt_disable -> spin_lock -> spin_unlock -> preempt_enable 로 critical section을 나오는 것으로 압니다.

따라서 진정한 동시성이 어떻게 만족되는지 파악하기 위해서 asmlinkage void __sched schedule(void) 를 분석하고 있는데요, 간단히 변수의 증가와 감소를

gurugio의 이미지

char* 로 쓰세요 아님 char *로 쓰세요?

예전에도 비슷한 질문이 있었는데 검색해도 찾지를 못하겠네요.

지금 the c++ programming language를 보고있는데
char* 로 표기하더라구요.
저는 전통적으로 char *로 많이 표기한다고 알고있는데
C++ 개발자들은 char* 를 선호하는 편인가요?

그리고 두 표기법이 문법적으로 차이점이 있나요?

cadava의 이미지

리눅스에서 원하는 부분부터 파일 분할

처음 가입하고, 글을 올립니다.

일단, 기가단위의 xml파일이 있는데요..
그중.. 그 파일을 읽고. 특정부분을 찾은 후
그 부분이 잇는 곳부터.. 그 원래 파일에서 그 부분을 따로 새파일로 만드는 것입니다.

라인단위로 할까 햇는데.. 위의 xml파일이 수십개가 있고
그 특정부분의 라인이 다 달라서.. 불가능하네요.

혹시 가능한 방법이 있을까요?

예를 들어서)
........ line1
...... line2
......
<여기부터입니다. " 숫자1"...> line100000
<여기부터입니다. "숫자2"....>line100001

이런식으로 파일내용이 잇을때..

<여기부터입니다>를 찾으면. 그 뒤의 내용만을 새로운파일에 쓰는 것입니다.. 즉 여기서는 line100000 부터 끝까지의 파일만을 새로운 파일로 옮기는 것입니다.

감사합니다.

hsnks100의 이미지

클래스에 새로운 변수를 추가하고 싶습니다.

C++ 에서 멤버변수를 추가하고 싶습니다.

그리고 특정 함수를 오버라이딩하고 싶습니다.

대신 이름은 그대로 쓸 수 있을까요?

가장 최상위 클래스인 CCNode 가 있다고 가정합시다.
CCNode 는 멤버로 m_fScaleX, m_fScaleY 를 가집니다. 그리고 CCNode 를 부모로 가지는 클래스들이 수백개가 됩니다.
일종의 게임엔진인데요, 이식성 문제 때문에 엔진코드 자체는 고칠 수 없는 상황입니다.

하지만, myScaleX, myScaleY 를 CCNode 에 추가하고 싶습니다.

그러기 위해 저는 템플릿을 하나 설계했습니다.

template
class KSNode : virtual public T
{
float myScaleX, myScaleY;
};

이렇게 쓰고 쓸 때는 KSNode* spr = ...; 하면 되겠죠. (CCSprite 는 CCNode 를 상속받았습니다.)

gudcjfdldu의 이미지

Python GUI 프로그래밍을 하다가,,Popen 함수를 이용해서 console 프로그램을 실행시켜야 합니다.

안녕하세요. 파이썬 프로그래밍에 관심이 많은 고3 학생입니다.

제가 궁금한 것은 제목 그대로 입니다.
Tkiner 모듈을 이용해서 GUI 프로그래밍을 하고 있습니다.
snapshot.py 라는 파일을 py2exe 모듈을 이용해 snapshot.exe 라는 파일을 생성하였고,
GUI상에서 snapshot.exe 파일을 선택하면 실행이 되야하는데..
콘솔프로그램이다 보니 실행이 안되네요
py2exe을 이용해서 배포판 만들때 setup.py 에 console 이라고 명시도 해주었고,
문제가 없는듯한데..
제가 생각하는 해결의 실마리는 Popen 함수에 있는것 같습니다.
도와주세요 ㅠㅠ

Long_run의 이미지

IPv6 UDP Socket Bind Error

============================SOURCE==========================
#include
#include
#include
#include
#include
#include
#include
#include

int main()
{
struct sockaddr_in6 servaddr;

int s;
int addrlen = sizeof(struct sockaddr);
char buf[256];

s = socket(PF_INET6, SOCK_DGRAM, 0);

bzero((char *)&servaddr, addrlen);

kid1402의 이미지

[완료]클래스 초기화 시에 레퍼런스에 대해..

클래스의 생성자에서 멤버 변수들을 초기화할 때, 레퍼런스 멤버 변수는 선언하자 마자 초기화가 되야하고 + 대상체가 실제 메모리를 점유해야 하기 때문에

생성자의 파라미터로 넘겨준 값만 받을 수 있다고 알고 있습니다..

그러니까 말하자면

class context{
private :
    object & obj;
 
public:
    context( object & obj) : obj(obj) {}
};

위와 같은 방법으로 밖에 초기화가 안된다.. 고만 알고 있습니다.

그런데 생성자에 아무것도 넘기지 않은 void 생성자가 필요한 경우가 와서, 생성자의 파라미터에 레퍼런스 인수목록이고 뭐고 아무것도 넘겨줄 수 없는 상황이 오면 어떻게 해야할까요?
단, 멤버로 레퍼런스 목록은 유지한채로 말이죠..

soyeon0618의 이미지

TLS 1.1 부터 바뀐 explicit IV .. ..무엇인가요..??

TLS 1.1 부터는 CBC BLOCK CIPHER 에서 사용하는 IV 가

만드는 형식이 바뀌었다고 RFC 에 나와있는데요, (TLS 1.1 RFC 4346)

1.0 에서는 master secret 에서 IV 값을 뽑은 후, 처음 IV를 사용할 때 앞서 만든 IV 값을 사용한 후 그 뒤부터는 각 레코드가 끝날때마다 cbc residue(전 레코드의 마지막 ciphertext block)를 다음 iv 로 사용하고,

1.1 부터는 master secret 에서 IV 값을 뽑지 않고, Cipher block 길이의 적당한(암호 강도가 높은??) R 값을 생성하여, IV 에 쓰고, .. 그 뒤부터는 이해가 잘 되지 않습니다.

mask라는 것도 나옵니다.
mask - The actual value that the cipher XORs with the plaintext prior to encryption of the first cipher block of the record.

좀 장황하게 설명했는데요 ^^;;

livey의 이미지

서버 접속 프로그램 문의

안녕하세요~

윈도우쪽 프로그래밍만 하다가 리눅스쪽 프로그래밍도 시작하게되었는데요
집에 남는 컴에 centos5 설치 해놓고 외부에서 노트북으로 putty로 접속해서
원격으로 만지고있는데 작년부터 리눅스에 빠져서 이것저것 재밌네요ㅎㅎ
노트북에는 우분투 12.04를 설치해서 쓰고 있구요

제가 만들어보려는 프로그램이 있는데요
centos 서버에 데몬을 실행해놓고 윈도우/리눅스 클라이언트에서
아이디와 비번을 입력하면 서버에서 인증 후 프로그램을 실행하게하고
업데이트사항이 있으면 자동으로 패치 다운로드받게끔 하는 프로그램을
만들려고합니다

제가 생각해본건
-클라이언트에서 openssl같은걸로 암호화된 ID/비밀번호 전송
-서버에있는 데몬에서 암호화된 ID/비밀번호를 풀어서 mysql에서 ID/비밀번호가 맞는지 체크하고 클라이언트에게 사용 가능/불가능 하다는 메세지를 전송
-패치항목이 있으면 파일 다운로드

페이지

프로그래밍 QnA 구독하기