Sic Parvis Magna

Linux etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Linux etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

14 Ekim 2025 Salı

C/CPP - Fonksiyonlar ve Kullanım Yöntemleri #16

Ekim 14, 2025 Posted by unexpected , , , No comments

uname

Bir struct değeri alır sistem ile ilgili bilgileri döner. Barşarılı ise 0 değerini, başarısız durumunda -1 değerini döner.

Syntax
int uname(struct utsname* name);

Params

  • name: struct ustname değeri
example.cpp
#include <stdio.h>
#include <sys/utsname.h>

int main(int argc, char** argv)
{	
	struct utsname uts;
	
	if(uname(&uts) == -1)
		return -1;
	
	printf("Sysname: %s\n", uts.sysname);
	printf("Nodename: %s\n", uts.nodename);
	printf("Release: %s\n", uts.release);
	printf("Version: %s\n", uts.version);
	printf("Machine: %s\n", uts.machine);
	printf("Domain: %s\n", uts.__domainname);
	
	return 0;
}

5 Ekim 2025 Pazar

Linux System Command #1

Ekim 05, 2025 Posted by unexpected No comments

Komut (ls)

Linux system üzerinde dosyaları listelemek ve bilgi almak için kullanılır.

ls
-a, --all              # Tüm dosya ve klasörleri göster (Gizli Dahil)
-A, --almost-all       # Tüm dosya ve klasörleri göster (Gizli Dahil) (. ve .. hariç)
    --author           # Sadece -l komutu ile kullanılırsa yazar bilgisini verir.
-b, --escape           # Dosya isimlerin de ('\ '{boşluk}, \n \t) gibi karakterleri yazdır.
    --block-size=SIZE  # Sadece -l komutu ile kullanılırsa dosya boyutlarını hangi birim ile göstereceğini belirler.
-B, --ignore-backups   # Dosya sonların da (~)tilde işareti olanları gösterme (Backup dosyaları)
-c                     # Dosyaları “change time” (ctime) yani metadata değişim zamanına göre sıralar.
-C                     # Dosyaları dikey sutunlar halinde yan yana dizilir. (ls komutu default olarak kullanır)
    --color=WHEN       # WHEN bura da 'always', 'auto' yada 'never' komutlardan biri olabilir. (default: auto)
-d, --directory        # Dizinlerin içeriğini değil, sadece kendi dizin adını verir.
-D, --dired            # Emacs’in “Dired mode” (Directory Editor Mode) tarafından kullanılır.

-l                     # Uzun formatta bir listeleme yapar (Ayrıntılı)

Atrıntılı listelme yaptığımız zaman bazı kısaltmaların olduğunu görürüz.

Syntax
drwx — — — 35 ubuntu ubuntu 1120 Dec 27 19:54 Desktop
-rwxrw-r — 65 ubuntu ubuntu 1120 Dec 28 18:36 test.txt
lrwxr-x — — 65 ubuntu ubuntu 1120 Dec 28 18:36 file.lnk
Command Description
d Dizin - Directory
- Normal Dosya - Regular File
l Sembolic Link
r Okuma İzni - Read Permission
w Yazma İzni - Write Permission
x Çalıştırma İzni - Execute Permission
c Karakter Aygıtı
b Block Aygıtı
p Pipe
s Socket

Peki “change time (ctime)” ne demek?

Linux dosya sisteminde her dosyanın üç farklı zaman bilgisi vardır:

Syntax
mtime  (ls -l)       # Dosyanın içeriği değiştiğinde güncellenir. (default)
atime  (ls -lu)      # Dosyaya erişildiğinde (okuma vb.) güncellenir.
ctime  (ls -lc)      # Dosyanın metadata’sı değiştiğinde güncellenir (izin, sahip, isim, link sayısı vs.).

31 Ağustos 2025 Pazar

C/CPP - Fonksiyonlar ve Kullanım Yöntemleri #15

Ağustos 31, 2025 Posted by unexpected , , , No comments

newlocale

Yeni bir locale oluşturur.

Syntax
locale_t newlocale(int category_mask, const char* locale, locale_t base);

Params

  • category_mask: Bir katagori seçilir.
  • locale: Local adı verilir. Örn: en_US.UTF-8, C eğer NULL olursa yeni oluşturur.
  • base: Sıfır olarak tanımlanır.

Kategori Mask Listesi:

  • LC_CTYPE_MASK
  • LC_NUMERIC_MASK
  • LC_TIME_MASK
  • LC_COLLATE_MASK
  • LC_MONETARY_MASK
  • LC_MESSAGES_MASK
  • LC_PAPER_MASK
  • LC_NAME_MASK
  • LC_ADDRESS_MASK
  • LC_TELEPHONE_MASK
  • LC_MEASUREMENT_MASK
  • LC_IDENTIFICATION_MASK
  • LC_ALL_MASK
example.cpp
#include <stdio.h>
#include <locale.h>

int main(int argc, char** argv)
{	
	locale_t loc = newlocale(LC_ALL_MASK, "en_US.UTF-8", (locale_t)0);
	if(!loc)
	{
		printf("newlocale error\n");
		return -1;
	}
	
	return 0;
}

duplocale

Verilen locale_t nesnesinin kopyasını oluştur. Başarılı olursa locale_t döner. Başarısız durumun da NULL olarak döner.

Syntax
locale_t duplocale(locale_t dataset);

Params

  • dataset: locale_t tipinde bir değer alır.
example.cpp
#include <stdio.h>
#include <locale.h>

int main(int argc, char** argv)
{
	...
	
	locale_t copy_loc = duplocale(loc);
	if(!copy_loc)
	{
		printf("duplocale error\n");
		return -1;
	}
	
	return 0;
}

freelocale

Oluşturulmuş locale_t nesnelerini serbest bırakır.

Syntax
void freelocale(locale_t dataset);

Params

  • dataset: locale_t tipinde bir değer alır.
example.cpp
#include <stdio.h>
#include <locale.h>

int main(int argc, char** argv)
{
	...
	
	freelocale(loc);
	freelocale(copy_loc);
	
	return 0;
}

uselocale

Aktif bir thread'in localini değiştirir.

Syntax
locale_t uselocale(locale_t dataset);

Params

  • dataset: Eğer LC_GLOBAL_LOCALE verilirise thread, tekrar global locale’i kullanmaya başlar. NULL verlirse sadece mevcut thread’in aktif locale’i döndürülür (değişiklik yapılmaz). Bir locale_t nesnesi verilirse o locale, geçerli thread için aktif olur.
example.cpp
#include <stdio.h>
#include <locale.h>

int main(int argc, char** argv)
{
	...
	
	locale_t thread_loc = uselocale(loc);
	if(!thread_loc)
	{
		printf("uselocale error\n");
		return -1;
	}
	
	return 0;
}

22 Haziran 2024 Cumartesi

FFMPEG - Kullanmaktan Keyif Aldığım Tool

Haziran 22, 2024 Posted by unexpected , No comments

Merhabalar bu yazıda çok sevdiğim ve kullanmaktan keyif aldığım bir tooldan bahsetmek istiyorum.

Canon EOS 2000D ile çektiğim videoları mp4 formatına dönüştürme ihtiyacı duydum. Evet Adobe Premier Pro ile dönüştürme yapabilirdim ama bir video dönüştürme yapmak için Adobe Premier Pro'yu açmak çok cazip gelmemişti.

Bunun için bende internetde araştırma yaparken ffmpeg ile karşılaştım. İşte dedim tam ihtiyacım olan şeyi buldum. Artık bir daha video dönütürmek için Adobe Premier Pro'ya gerek kalmadı tabi. 😆

Öğrediğim komutlarıda burada paylaşıyor olacağım kullanmak isteyen gelsin buyursun komutlar aşağıda ⬇️

MOV to MP4 Convert

Ham halindeki videolarınızı x264 codec formatında mp4 olarak çıkarabilirsiniz.

terminal
ffmpeg -i input.mov -c:v libx264 -c:a aac output.mp4
MP4 to MP3 Convert

Video içierisinden ses dosyasını mp3 formatında dönüştürebilirsiniz.

terminal
ffmpeg -i video.mp4 -vn -acodec libmp3lame audio.mp3
Video Merge

Bazen elimizde parça parça videolar bulunur bunları birleştirmek isteriz işte aşağıdaki komut ile bunu yapabiliriz. Dosya içerisine file part1.mp4 şeklinde alt alta yazmalıyız.

terminal
ffmpeg -f concat -i file.txt -c copy output.mp4
VCD to MP4 Convert

VCD içerisine bulunan dat dosyalarını mp4 olarak bu komut ile çevirebiliriz.

terminal
ffmpeg -i Disc1.dat -vcodec copy -acodec copy Disc1.mp4
MP4 to 3GP Convert

Bazen mp4 formatındaki videoları 3gp olarak çevirmekte gerekebiliyor. İşe size komut.

terminal
ffmpeg -y -i video.mp4 -r 20 -s 352x288 -vb 400k -acodec aac -strict experimental -ac 1 -ar 8000 -ab 24k video.3gp
Syntax
ffmpeg [options] [infile]... [outfile]...
   -i <file>         # Dosya girişi yapılır. File.txt içeriğine eklenir dosyalar
   -acodec <codec>   # Verilen kodlama tipi "copy" kullanıla bilinir.
   -vcodec <codec>   # Verilen kodlama tipi "copy" kullanıla bilinir.
   -c <codec>        # Verilen kodlama tipi "copy" kullanıla bilinir.
   -f <param>        # İki dosyayı birleştirmek için concat kullanılır.
   -r <rate>         # Frame rate hızı
   -s <size>         # Video Çözünürlük
   -vb <bitrate>     # Video bitrate hızı
   -strict <param>   # Standartlara uymak (default: normal)
   -ac <channels>    # Ses kanalları
   -ar <rate>        # Ses rate hızı
   -ab <bitrate>     # Ses bitrate hızı
   -y                # Üzerine yaz
   -vn               # Video kapalı