프로그래밍 QnA + 설치 및 활용 QnA

mydream의 이미지

어셈블리 반복문에서 변수의 값을 출력해서 확인해볼 수 없을까요?

#include <cstdio>
 
int main() {
 
	int count=0;
	__asm {
		MOV ECX, 10
		MOV EBX, 0
		L1:
		INC EBX
		MOV count, EBX
		LOOP L1
	}
        //반복문을 순환할 때마다 증가된 count의 값을 출력해보고 싶은데, 방법이 없나요? 1, 2, 3, ..., 10으로 출력되는 것을 확인해보고 싶습니다.	
 
 
	return 0;
}

laydra의 이미지

stdout redirection 하는 파일 삭제 후 signal 25 발생 시 파일 위치

안녕하세요.

아래 파일이 도대체 어디에 존재하는지 알고 싶네요...
inode 부터 tty 이것저것 보고 있는데 지식이 얕아 궁금증이 해결되지 않네요...

하나의 프로세스의 printf 로그를 stdout 으로 redirection 하여 파일로 쌓고 있다가 ext3 파일 시스템에서
2G가 넘어 다운이 발생해서 해당 로그파일을 주기적으로 지워주는 스크립트를 구동 시켰습니다.
그런데 이게 파일은 지웠는데 또 printf 를 찍다가 signal 25를 발생시키더군요... 한참을 찾아 해매다

lsof -p [프로세스] 명령어로 상태를 보니
test 19108 root 1u REG 104,2 598634496 537956 /temp/test.out (deleted)

위와 같이 deleted 로 되어있는데도 파일 사이즈가 늘어나고 있더군요..
해당 문제는 printf 를 없애거나 /dev/null 로 처리하면 될거 같은데

원인이 뭔지 잘모르겠네요..도움 부탁드립니다..ㅜㅜ

alfhd00의 이미지

autoconf를 사용하여 Makefile만들기

configure.ac 파일을 형식에 맞게 작성하고 autoconf를 명령했는데 error가 발생합니다.
아직 공부한지 얼마되지 않아서 어떤부분이 잘못되었는지 모르겠습니다.

bureokjam의 이미지

함수의 선언과 관련된 질문입니다.

main 함수 내부에서 함수를 선언할 경우 그 함수명의 통용범위는 main 함수로 국한되는것이 맞는건가요?

mydream의 이미지

어셈블리의 곱셈과 나눗셈

스레드에 대해 공부하다가 자원의 경합(Data Racing) 문제에 부딪히게 됐습니다. 스레드 A와 스레드 B가 전역의 공유 자원에 동시에 접근하는 경우 스레드가 연산의 결과를 메모리에 다시 돌려주기 전에 스레드 B가 읽어서 연산을 하면 전역의 공유자원은 덮어 쓰이기 때문에 결국 스레드 A의 연산결과는 무시가 되는 문제가 생기더군요. 이런 문제를 막으려면 원자성이 확보되어야 한다고 합니다. 기계는 하나의 연산을 여러 단계로 나누어서 처리를 하는 경우가 있다고 하더군요. 이 작업이 더 이상 쪼개질 수 없는 단위로 간주해 버리면 원자성이 확보된다는 것인데. 그래서 기계어와 가까운 어셈블리를 배워보려고 관련 서적을 봤습니다. 그런데 덧셈과 뺄셈과 같은 이항 연산은 ADD, SUB와 같은 명령어로 제공이 되는데, 곱셈과 나눗셈은 없는 것으로 보입니다. MUL이라는 명령어는 제곱을 해주는 일항연산이고, 그로 봐서 DIV 명령어는 제곱근을 구하는 명령어로 추측이 되는데요. 이항 연산 관련 연산자로써 곱셈과 나눗셈을 제공하는 명령어는 없는지 궁금합니다. 어떤 명령어로 하면 될까요?

nixon4545의 이미지

디바이스 드라이버 모듈에서 정의한 file operations를 커널소스에서 호출하는 방법

static struct file_operations fops = {
.owner = THIS_MODULE,
.read = sk_read,
.write = sk_write,
.open = sk_open,
.release = sk_release,
};

디바이스 드라이버를 모듈로 insmod를 했고

모듈에서 만든 sk_write를 커널부분에서 호출을 하고 싶습니다
(정확히는 커널에 선언되어있는 vfs_write에서 호출하고 싶습니다)

그러기 위해선 모듈에 선언된 저 fops의 주소를 알아내야할까요?

nixon4545의 이미지

insmod한 모듈드라이버에서 작성한 fop를 커널안에서 사용하는 방법

static struct file_operations fops = {
.owner = THIS_MODULE,
.read = sk_read,
.write = sk_write,
.open = sk_open,
.release = sk_release,
};

디바이스 드라이버를 모듈로 insmod를 했고

모듈에서 만든 sk_write를 커널부분에서 호출을 하고 싶습니다
(정확히는 커널에 선언되어있는 vfs_write에서 호출하고 싶습니다)

그러기 위해선 모듈에 선언된 저 fops의 주소를 알아내야할까요?

khj의 이미지

Freebsd 11 PXE 설치 방법을 아시는 분 있습니까?

저에게는 PC가 2대 있습니다.

둘 중 하나는 꽤 오래된 PC이며 PXE 2.0을 지원합니다.

나머지 하나는 윈도10을 사용 중입니다.

윈도 10이 설치된 PC를 PXE 서버로 쓰고 오래된 PC를 PXE 클라이언트로 쓰려고 합니다.

구글링으로 윈도용 tftpd32를 이용해야 한다는 것은 알게 됐지만 어떻게 해야 하는지 아예 감도 안 잡힙니다.

freebsd 11을 PXE로 설치하는 방법을 알려 주시기를 부탁드립니다.

세벌의 이미지

python 에러

ee.py

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
class MyWindow(Gtk.Window):
 
	def __init__(self):
		Gtk.window.__init__(self, title="Hello PyGtk")
 
		self.button=Gtk.Button(label="Label")
		self.button.connect("clicked", self.on_button_clicked)
		self.add(self.button)
 
	def on_button_clicked(self, widget):
		print("Hello PyGtk 3")
 
win = MyWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()

페이지

프로그래밍 QnA + 설치 및 활용 QnA 구독하기