'Programming'에 해당되는 글 91건

  1. 2007.02.12 screen attach dettach 구별법 2
  2. 2007.01.14 vte를 이용한 간단한 터미널 2
  3. 2006.12.15 iconv 함수 사용법.?!
  4. 2006.12.14 libglade 컴파일법 1
  5. 2006.08.09 TODAY.... 삽질 DAY 6

screen attach dettach 구별법

/tmp/screen/-S-$USER/의 fifo파일의
mode상태를 보면된다
퍼며션에 access mode가 되있으면 (x,700) attach
안되잇으면 dettach다(600)
이거안다고 screen 솟스 뒤짐 ㅜ.ㅜ
조금만 관찰 해보면 알수 있었을 텐데..
아주 fifo쓰기하고 뻘짓을함..
역시 소스 보기가 제일이야 ㅠ

file>socket.c

277 /*
278 * mode 600: socket is detached.
279 * mode 700: socket is attached.
280 * xflag implies rflag here.
281 *
282 * fail, when socket mode mode is not 600 or 700
283 * fail, when we want to detach w/o reattach, but it already is detached.
284 * fail, when we only want to attach, but mode 700 and not xflag.
285 * fail, if none of dflag, rflag, xflag is set.
아 역시 지금까지 이거 함수 만드는거 한건 뻘짓이였어.................................

'Programming > System' 카테고리의 다른 글

압축플때 쓰는 쉘 스크립트  (4) 2007.06.18
MBR(?) 출력 하기  (2) 2007.06.17
Beginning Linux Programming Part6-Curses  (2) 2006.06.25
ls -al  (0) 2006.06.21
Beginning linux programming  (6) 2006.03.01

vte를 이용한 간단한 터미널

사용자 삽입 이미지
오! 이런 위젯이 있는지 몰랐네요..

간단한 위젯인데.. 이거 하나만 쓰면 그냥 터미널이 바로 뜨니..

조금만 해보면 자신만의 터미널을 만드는것도 쉬울거 같네요..

gnome-terminal,tilda가 이 vte 라이브러리를 사용하네요

아마 가상 터미널 애뮬리이팅? 의 약자인듯하네여..

30줄도 안대는 코드로 터미널 하나가 완성됩니다

해더->vte/vte.h,gtk/gtk.h

1 #include
2 #include
3
4 int main(int argc,char *argv[])
5 {
6 GtkWidget *terminal;
7 GtkWidget *window;
8
9 gtk_init(&argc,&argv);
10
11 window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
12
13 terminal=vte_terminal_new(); //위젯 생성
14 //터미널 씰헁조건 같은거..
15 vte_terminal_fork_command(VTE_TERMINAL(terminal),
16 getenv("SHELL"),NULL,NULL,"/home/lowid",
17 TRUE,TRUE,TRUE);
18
19 gtk_container_add(GTK_CONTAINER(window),terminal);
20
21 g_signal_connect(GTK_OBJECT(window),"destroy",gtk_main_quit,NULL);
22 g_signal_connect(GTK_OBJECT(terminal),"child-exited",gtk_main_quit,NULL); //터미널에서 exit 쳤을때
23 gtk_widget_show_all(window);
24
25 gtk_main();
26 return 0;
27 }

다른건 gtk창만드는것과 같고 다른게 있다면 vte의 함수를 가따 썻다는거 뿐

함수는 다음을 참고 하세연..클뤽~!


참고하면 좋은 소스


링크타고 보시면 아시겠지만 터미널을 제어할수 있는 함수가 몇개 되더군요..
이거 이용하면 그놈터미널정도(?)의 수준으로 터미널 만드는건 아주 어려운일 같은 정도는 아닌거 같습니다
추가>vte_terminal_fork_command 함수의 두번째 인자 getenv("SHELL")을 해야 쉘이 뜹니당..(처음 프로그램 정해줌)
안해주면 커서만 가만히 놀고 있음.. 이거 몰라가꾸 하루죙일 뻘짓,..

'Programming > GTK+' 카테고리의 다른 글

xlib 에러 해결!  (2) 2007.02.28
gtk Thread  (2) 2007.02.27
libglade 컴파일법  (1) 2006.12.14
TODAY.... 삽질 DAY  (6) 2006.08.09
(초보) gtk 작성팁  (10) 2006.08.04

iconv 함수 사용법.?!

iconv_t cd;
cd=iconv_open("EUC-KR", "UTF-8"); //from:EUC-KR to:UTF-8


size_t in_bytes = strlen(str), last_bytes;
char *out = (char *) malloc(ICONV_BYTES(in_bytes));
char *outp = out;
size_t out_bytes = ICONV_BYTES(in_bytes);
do {
int n;

last_bytes = in_bytes;
n = iconv(cd, (char **)&str, &in_bytes, &outp, &out_bytes);

}
} while (in_bytes > 0 && in_bytes < last_bytes);
iconv_close(cd); //문자 로케일 cd

libglade 컴파일법

glade3.0버젼 이상부터 C솟스를만드러 주는 기능이 사라져따..
그래서 어케해야 glade랑 gtk랑 가치 사용할수 이쓸까 하다가 libglade를 사용하면 된다고 하길래
그거 찾아봤으나.. 도저히 컴팔이 안되서 지지쳤던..

libglade라는넘이랑 gtk랑 같이 쓰면서 GUI플밍 하는듯 싶다..



This,glade파일은 생략.. 알아서 잘 만드러 주기 바람..(꺽쇠의 압박땜에 ..포기)

컴파일법: gcc testprogram.c -o test `pkg-config --cflags --libs gtk+-2.0 libglade-2.0`
저기 뒤에 libglade-2.0 찾는다고 고생해따....

참고:
http://docs.linux.cz/programming/gnome/developer.gnome.org/doc/API/2.0/libglade/index.html

'Programming > GTK+' 카테고리의 다른 글

gtk Thread  (2) 2007.02.27
vte를 이용한 간단한 터미널  (2) 2007.01.14
TODAY.... 삽질 DAY  (6) 2006.08.09
(초보) gtk 작성팁  (10) 2006.08.04
GTK_TEXT 에러..해결책  (4) 2006.07.30

TODAY.... 삽질 DAY

오늘은 하루종일 삽질을 했습니다... 하아하하하하하하하~

그 삽질의 주요내용은 devhelp 제대로 인식시키기 위해서,

GTK 플밍에서 스크롤바 조절 하기 였죠...

/usr/share/gtk-doc/html 수동으로 두기...

스크롤바 만들기.. 좌절...;;;;

아주 듣도 보도 못한 함수 대여섯개 가지고 삽질을 .. 해도 도저히 몰라서.. IRC에서 hz님께 간간히 질문..

and KLDP에 질문... 해가면서 했으나.. 스크롤반 더이상 진전이 없었다...

어쩌다가 구글링을 하다보니.. 그 함수를 쓴 소스 페이지가 나왔었다..

그거 대충보고 분석해서.. 그부분을 복사 붙여넣기 했다.... 하아..

GTK 정말 VI로 하나하나 타이핑 하기애는 정말 복잡하네요..


기본적인초기화
화면에 보여주기
윈도우 만들기
(타이틀,기본윈도 크기조절)
타이틀의 종료 버튼 눌렀을때 윈도우 종료 시키는 명령어 넣기
버튼/레이블 만들기
버튼 눌렀을때 반응 설정하기
텍스트박스/엔트리박스 만들기
라디오박스/체크박스 만들기..
각 팩으로 나눈거 윈도우에 붙이기..
스크롤바 만들기
적재?하기 .............는  책에 있는거 보면서 하면 됬었습니다.. 하지만..

아래것은... 정말 삽질이란 삽질은 다해가면서.. 어흑..;;
해석은 되는데 당최 내가 해석해놓고 뭐라고 말하는지 해석 불가인?  영문 레퍼런스를 읽으면서..
볼때 마다 좌절했죠..
게대가 봐도 답은 안나와...함수는 함수를 부르고 해서 기능하나 만들려면 함수 3~4개가 필요한것도 있었어요
(안그래도 영어 짧은데 ㅡㅜ.. 작문이 되면 메일링 리스트도 썼겠지만 제가 영작문 실력은 Zero에 수렴하는지라)

인자가 하나밖에 없는 함수(callback) 넘기기(ㅡㅜ)
창버튼 조절(!)
창크기 움직임 방지
최대화 금지
상위/하위 윈도우 조절
윈도우간 이동 제어(!)
일부개체의 크기 설정
다이얼로그 박스 설정(!)
폰트 색깔 조절하기
스크롤바 조절하기(!)
TAB으로 이동되는 경로 설정하기(!)
엔트리박스(한줄짜리 입력상자)입출력 제어하기

IP,PORT 크기 판별하기
  ''       문자가 있는지 확인하기

IP,PORT 문자 제어하기..(IP사이에 점찍기 .; )등등...:wq

아니 윈도우 2개에다가 다이얼로그1개인 프로그램에 설정해야 할게 뭐 저렇게 많단 말입니까 ㅡㅜ..
(프로그램을 실행하기에 필요한게 아니라.. 사용자 편의를 위해서 들어간게 꽤나 많죠 저기)
5일 동안 했는데 아직 윈도우 디자인도 차마 완벽히 못끝낸 상태입니다 ㅡㅜ...
게다가 함수명도 더럽게 길어서...

ex>
gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(text),marks,0.0,FALSE,0.0,0.0);

와 정말 깁니다. C로 객체지향 할려고 하다보니 저렇게 된 모양인데...
아무리 그래도 너무 합니다. 게다가 중간중간에 언더바(...) 타입케스팅은 대문자(...)
대체 시프트키를 얼마나 많이 써야하는지...
대신 함수가 어떤 기능을 하는지 확실하게 알수 있지만요( 무슨 함수인지 설명할 필요가 없죠?)

그리고.. 앞에서도 적었지만은...gtk에는 Callback이라고 VB의 이벤트 비슷한게? 있습니다
그런데.. 그  callback을 넘기는 함수가 포인터 인자를 1개바께 못받게 고정되있어서..
구조체를 계속 만들어 주기 상당히 귀찮습니다.. 그래서 전 몇게는 걍 전역변수로...;;
(사실 따로 넘겨줄려고 하다가 몇개 시도하고는 귀찮아서 포기한)

정말.. GTK는 뭐랄까.. 상당히 복잡하달까...
뭐 이러는것도 일부로 사서 삽질하는 거지만요.. 초반에 부터
glade쓰면 편하긴 하지만.. 일단 대충 개념을 숙지하기 위해서...

하지만 좋은점도 있습니다..
C만 알아도 하는데 전혀 어렵지 않다는것...
몇개 개념적인것만 이해한다면..그냥 함수들이나 배우는거죠 뭘..
(따지고보면 배운다기보다.. copy & paste...하고 계속 그짓? 하다보면 개념이 인식?되는. 쿨럭.;; )
하나더..C에서 지원하는 함수도 사용할수 있다는점도 있겠네요

'Programming > GTK+' 카테고리의 다른 글

vte를 이용한 간단한 터미널  (2) 2007.01.14
libglade 컴파일법  (1) 2006.12.14
(초보) gtk 작성팁  (10) 2006.08.04
GTK_TEXT 에러..해결책  (4) 2006.07.30
Glade! 리눅스 GUI 프로그래밍 툴  (0) 2006.07.18
prev 1 ··· 12 13 14 15 16 17 18 19 next