Forum: Ders Arası RSS
C++'ta kullanılan System(); Fonksiyonu Karşılığı Nedir?
Page:  1  2  next 
Ali #1
User title: Python / Java / C,C++  / D
Member since Jan 2011 · 80 posts · Location: Orjin
Group memberships: Üyeler
Show profile · Link to this post
Subject: C++'ta kullanılan System(); Fonksiyonu Karşılığı Nedir?
Yani biraz aradimda yanlis aradim sanirim kaynaga ulasamadim.

Bildiginiz gibi

C++ icin

#include <iostream>
#include <cstdlib>
 
int main()
{
    system("linux bash komutum ornegin");
}

şeklinde bir kullanım var.

Bunu D ile ilişkilendirmek istiyorum.

bash zenity ya da Py TK ile yazdigim kodlari C ve C++ dilindeki gibi bir system fonksiyonu varsa ona atamak istiyorum. Bunu nasıl sağlarım?
Ali
acehreli (Moderator) #2
User title: Ali Çehreli
Member since Jun 2009 · 2279 posts
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
std.process içinde system(). C'den biraz daha kullanışlı: işlettiği programın dönüş değerini olduğu gibi döndürüyor. (C'de ise o değerin WEXITSTATUS makrosundan geçirilmesi gerekir.)

Yine aynı modülde shell() var: işlettiği programın standart çıkışını döndürüyor.

system()'ın benzeri olan execv, execve, execvp, execvpe de var.

Ali
Ali #3
User title: Python / Java / C,C++  / D
Member since Jan 2011 · 80 posts · Location: Orjin
Group memberships: Üyeler
Show profile · Link to this post
Dediginizi basit bir ornekle yapinca oldu

Merakim su

ben bash kodlarini calistirabiliyorum

import std.stdio;
import std.process;
 
void main()
{
    system("zenity --info");
}

ama python kodlarını da çalıştırabilir miyim?

.py dosyasını

python dosya.py

seklinde cagirarak degil

print ("Selam")

şeklinde
Ali
Kadir Can #4
Member since Jun 2010 · 301 posts
Group memberships: Üyeler
Show profile · Link to this post
Python yorumlayıcısını kullanmadan olmaz gibi geliyor.
acehreli (Moderator) #5
User title: Ali Çehreli
Member since Jun 2009 · 2279 posts
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Python/C API ile C (ve C++) programlarından Python kodları çağrılabiliyor. Onun D'de kullanılabilmesi için o kütüphanenin D ilintilerinin yazılmış olması gerekir.

Hızlıca araştırdım ve bunun tersini yapan, yani Python'dan D kodlarını çağırmayı sağlayan pyd'yi buldum:

  http://dsource.org/projects/pyd

Ne yazık ki çok eski olduğu için herhalde ancak D1 ile çalışıyordur. O sayfada tam istediğimiz gibi D'den Python'u çağırmaya yarayan ama yine çok eski olan şu modülü buldum:

  http://dsource.org/projects/pyd/browser/trunk/infrastructu…

Tabii ki hiç deneyimim yok. :)

Ali
Ali #6
User title: Python / Java / C,C++  / D
Member since Jan 2011 · 80 posts · Location: Orjin
Group memberships: Üyeler
Show profile · Link to this post
Tesekkur ederim hocam (:

GtkD'ye biraz yabanciyim acikcasi.

Dershane guncellenirse biraz ogrenebilirim.

Ama o ana kadar ki uygulamalarda ya zenity ya da tkinter kullanayim diyordum.

Paylastiginiz 2. linkteki python.d header file'ına baktımda öldüm sandım kaç satır o :o inceleyecektim birde

@Kadir CAN

bende dedigin gibi denedim ama yine python yorumlayıcısını

python komutu ile cagiriyorsun.

import std.stdio;
import std.process;
 
void main()
{
    system("python a = 13 print a");
}

Hata vermeden derleniyor

ancak ./deneme

şeklinde çağırdığımda python

ile alakadar şu hatayı veriyor

ali@ali:~/Masaüstü$ dmd a.d
ali@ali:~/Masaüstü$ ./a
  File "a", line 1
SyntaxError: Non-ASCII character '\x98' in file a on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
ali@ali:~/Masaüstü$

Ali
acehreli (Moderator) #7
User title: Ali Çehreli
Member since Jun 2009 · 2279 posts
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Quote by CWSuskun:
Paylastiginiz 2. linkteki python.d header file'ına baktımda öldüm sandım kaç satır o :o inceleyecektim birde

Ama onların çoğu basit işlev ve yapı bildirimleri. Okuyacak çok az şey var. :)

SyntaxError: Non-ASCII character '\x98' in file a on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

Sanki Python dosyasının kodlaması ile ilgili. Söyledikleri sayfadaki gibi bir "# -*- coding:" satırını eklemek işe yarıyor mu?

Veya orada BOM'dan (byte order mark) bahsediliyor. Dosyayı kaydederken UTF-8 olarak mı kaydediyorsun? Veya metin düzenleyiciye BOM'u ekle veya ekleme diyebiliyor musun?

Ali
Ali #8
User title: Python / Java / C,C++  / D
Member since Jan 2011 · 80 posts · Location: Orjin
Group memberships: Üyeler
Show profile · Link to this post
Evet abi python'un kendi dil algilama kodunu da kattim

degisik secenklerde

utf-8 gibi yani kaydettim olmadi

hatta

#usr/bin/python env

vs. yazip denedim

sadece d ile degil

c, c++ ile yine boyle
Ali
Kadir Can #9
Member since Jun 2010 · 301 posts
Group memberships: Üyeler
Show profile · Link to this post
CWSuskun;
Oradaki hata daha farklı.Sen python yorumlayıcısını çağırırken ona bir dosya vereceğini garanti ediyorsun.Doğal olarak o da a adlı dosyayı istiyor.Ama sen komut yürütmek istiyorsun.Hata bence burada.
This post was edited on 2011-06-28, 02:14 by Kadir Can.
Ali #10
User title: Python / Java / C,C++  / D
Member since Jan 2011 · 80 posts · Location: Orjin
Group memberships: Üyeler
Show profile · Link to this post
Baska turlu nasil cagircagimi bilemedim :(
Ali
This post was edited on 2011-06-28, 02:19 by Ali.
acehreli (Moderator) #11
User title: Ali Çehreli
Member since Jun 2009 · 2279 posts
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Güzel gördün Kadir Can! :)

CWSuskun, -c seçeneği imiş:

    system("python -c 'a = 13; print a'");

Acaba sende ayrıca 'a' isminde bir dosya mı var? Python onu buluyor ve onun kodlamasını mı beğenmiyor?

Ali
Ali #12
User title: Python / Java / C,C++  / D
Member since Jan 2011 · 80 posts · Location: Orjin
Group memberships: Üyeler
Show profile · Link to this post
calistirmayi ogrendik abi calisiyor tek hatasi girinti hatasi sanirim syntax'ta hata buldu (:

  File "<string>", line 1
    a = 13 print a
               ^
SyntaxError: invalid syntax
Ali
Kadir Can #13
Member since Jun 2010 · 301 posts
Group memberships: Üyeler
Show profile · Link to this post
In reply to post #11
Teşekkürler Ali Bey.
Yalnız komut satırında( Windows )
python -c 'a=13 print a'
komutunu verince çıktı dönmüyor.Sanırım sadece a=13 kısmını yürütüyor.
This post was edited on 2011-06-28, 07:54 by Kadir Can.
acehreli (Moderator) #14
User title: Ali Çehreli
Member since Jun 2009 · 2279 posts
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Noktalı virgülün gücüne saygı duyuuun! :-p

Ali
Kadir Can #15
Member since Jun 2010 · 301 posts
Group memberships: Üyeler
Show profile · Link to this post
Noktalı virgülün gücü sorunu çözdü. :D
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please note the verification code from the picture into the text field next to it.
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Page:  1  2  next 
Forum: Ders Arası RSS
Not logged in. · Lost password · Register
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Current time: 2012-05-18, 09:58:56 (UTC -07:00)