C ile Shell

Başlatan tlg, 31 Mart 2016 - 22:24:13

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

tlg

Merhaba, C ile basit bir shell yapmaya çalışıyorum ancak bazı komutlarda hata veriyor. Nerede yanlış yaptığımı bulamadım, ilgilenen varsa ve göz gezdirip yardım ederseçok güzel olur.
Örneğin "ls" komutu çalışmakta, lakin "cd Belgeler" veya "touch tlg" dediğim zaman katarı bölmekte arıza çıkarıyor ve komutları algılamıyor.

http://paste.ofcode.org/FRth8SZALqKRZ3X66xZCnL

ShangriLa

get_line fonksiyonun hatalı, sizeof(line) line pointerinin boyutunu dönüyor bu da 64 bit makinelerde genelde 8 bayt. Yani fgets sadece 8 bayt okuyor. Ayrıca malloc ile ayrılan alanı sıfırlaman lazım, malloc yerine calloc kullanabilirsin. 64 yerine de daha büyük bir buffer boyutu kullanman daha iyi olacaktır.
Ubuntu Mate Trusty