Veri yapıları – Bağlı Liste II

Veri yapıları – Bağlı Liste II

Veri yapılarında bağlı liste yöntemi, verileri düzenli halde tutmanın en önemli yollarından biridir. Daha önce şu yazımda bağlı listenin ne olduğunu açıklamıştım ve bağlı liste oluşturmanın, bağlı listeye veri eklemenin nasıl olacağını gösteren bir kod dökümanı paylaşmıştım. Bu yazıda ise bağlı listeden nasıl veri silineceğini gösteren küçük bir kod dökümanı paylaşacağım. Tek yönlü bağlı listede, bir işaretçi yalnızca kendinden sonraki adresi gösterdiğinden, tek yönlü bağlı listede bir indis silmek bir geçici…

Çalışan tüm processlere ait bilgiler nasıl elde edilir?

Bu post içerisinde bilgisayar üzerinde çalışan processlerin bazı bilgilerinin nasıl ekrana basılacağını göstereceğim. Bu işlemler için Windows.h ve Psapi.h kütüphanelerini projeye eklemek önemlidir. Processe dair şu bilgiler ekrana basılacaktır: Process ID’si (PID), Processin ve tüm modüllerinin adı, Processin versiyonu, Processin modeli (Native veya WoW64), Process ve modüllerinin handle değerleri, Min. ve Max. working set boyutları. Bu bilgilerin nasıl api yardımıyla alınacağını merak ediyorsanız:

System Installation Date’i alma yöntemleri

System Installation Date’i alma yöntemleri

Son günlerde aldığım bir ödev sonrasında saç baş yolduracak saatler yaşadım. Windows üzerinde sistemin yüklenme tarihini C/C++ dillerini kullanarak çekmem ve ekrana basmam gerekiyordu. Bunun birden çok yöntemi var fakat hiç kimse kod üzerinden yapılması gerekenleri anlatmamış veya bilmiyor. İnternette bulduğum basit çözümü şöyle göstereyim: Yukarıdaki komut, cmd ekranında size istenen sonucu veriyor. ‘systeminfo’ programı içerisinde birçok bilgiyi barındırıyor ve yeri geldiğinde bu bilgilerle kodlama yapmak işinize yarayabilir. Bunları kullanabilmek için…

MessageBox kullanımı ve sistem bilgilerinin alınması

MessageBox kullanımı ve sistem bilgilerinin alınması

MessageBox fonksiyonunun C++ konsol projesi üzerinde nasıl oluşturulduğu ve kullanımına dair küçük bir örneği sistem bilgilerinin alınması üzerinden gerçekleştirdim. MessageBox, gösterilecek mesaj için bir kutucuk ortaya çıkarır. Parametreleri: İlk parametre, NULL olması durumunda pencerenin bir parent’ı olmadığını ifade eder, ikinci parametre, yazılacak içeriğin değişkenini belirtir, üçüncü parametre, MessageBox başlığı için girdi ister, dördüncü parametre ise MessageBox üzerinde buton, ikon gibi şeyler eklemeye yarar. Ayrıca MessageBox, üzerinde tıklanan butona göre bir integer…

MemoryStatus ve MemoryStatusEx arasındaki fark ve kullanımı

MemoryStatus ve MemoryStatusEx arasındaki fark ve kullanımı

Merhabalar. Bugünlerde aldığım bir dersten ötürü Windows.h kütüphanesini öğrenme ve uygulama imkanım oluyor. İnternette Microsoft dökümanları dışında kaynak olmadığından ötürü vakit buldukça öğrendiğim şeyleri buraya aktarmaya çalışacağım. MemoryStatus ve MemoryStatusEx MemoryStatus ve MemoryStatusEx aslında ayrı birer struct yapısı. Bu struct yapıları, bilgisayarda bulunan hafıza alanları ile ilgili bilgiler tutar. MemoryStatus, x86 sistemler için yazılmışken, MemoryStatusEx(tended), x64 sistemler için oluşturulmuştur. x64 sistemler için oluşturulan struct yapısı x86 sistemler için de geçerli sonuçlar…

UDP kullanarak ping işlemi nasıl yapılır?

Bu yazıda UDP(User Datagram Protocol) kullanarak basit bir ping işlemi nasıl yapılır kodlarını paylaşacağım. Socket programlamada bilindiği üzere iki taraf gerekmektedir. Bir taraf sunucu ve bir taraf client olmalıdır. Aşağıda Python programlama dilinde yazılmış basit bir UDP tabanlı ping işlemi gerçekleştiren programı bulabilirsiniz. Client.py dosyasının içeriği: import socket import sys import time try: socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) socket.settimeout(5) except socket.error: print ‘Failed to create socket’ sys.exit() host = ‘127.0.0.1’ port =…

Projelerde IOTA’yı kullanmak – 2

İlk yazımızda ( Projelerde IOTA’yı kullanmak – 1 ) IOTA’yı, IOTA js kütüphanesini nasıl kullanacağımızı, node.js üzerinde nasıl çalıştıracağımızı aktarmıştık. Bu yazıda ise IOTA js kütüphanesinin bir uygulamasını anlatacağım. Bir işlemin ( transaction ) yapısını parçalara ayırabilmek yazacağınız bir IOTA kullanan uygulama için önemlidir. Bu yüzden bir işlemin yapısını anlamak önemlidir. Bu linkten bir işlemin anatomisini inceleyebilirsiniz. IOTA.js kütüphanesinden getTransactionObjects fonksiyonu aracılığıyla bir işlemin yapısını tamamıyla çekebilir ve işleme yazılan mesajı ekrana…

Projelerde IOTA’yı kullanmak – 1

Projelerde IOTA’yı kullanmak – 1

Bu yazıda hedef kitle IOTA ile geliştirmeye ve aynı zamanda programlamaya yeni giriş yapacak kişilerdir. IOTA’nın ne olduğu hakkında bilgisi olmayanları şöyle alalım. IOTA’nın aslında bir shitcoin olmadığını ve sunduğu olanakları test etmenin bir çok kolay yolu var. Bunlardan birisi de testnet’i kullanarak sıfır değerli bir transaction ( işlem ) oluşturmak. Bunun için gerekenler: Node.js 8+ Node Package Manager ( NPM ) Kod düzenleyici ( Notepad++, Atom vs. ) Terminal ( cmd…

Veri yapılarına giriş – Bağlı Liste

Veri yapılarına giriş – Bağlı Liste

Bağlı liste ( Linked list ) : veri öbekleri arasında oluşturulan bağlantılı liste. Her düğümün kendinden sonraki – duruma göre aynı zamanda önceki – düğümü işaret etmesiyle oluşturulur. Bu yüzden veri yapıları konusu işaretçiler ( pointer ) konusuyla bağlantılıdır. Bağlı liste, belleği dinamik olarak kullanır. Bunun anlamı, veriyi nereye yazdığınızı bilirsiniz. Ayrıca liste yapısı işaretçileri de kullandığı için liste içerisinden bir veri sildiğinizde bellekten de silinir, gereksiz yer kaplamaz. Bağlı liste…