Özet
segedit input_file [-extract seg_name sect_name data_file] ...
segedit input_file [-replace seg_name sect_name data_file] ... -output output_file
Açıklama
segedit, input_file dosyasından adı belirtilen bölümleri ayıklar veya değiştirir. Bölümler ayıklanırken, segedit istenen her bir bölümün içeriğini data_file dosyasına yazar. Bölümler değiştirilirken, segedit, input_file dosyasından ve data_file dosyasından alınan istenen yedek bölüm içeriğinden oluşan yeni bir output_file dosyası yazar. Segment ve bölüm adları, -sectcreate seçeneğiyle ld(1) komutuna verilenlerle aynıdır. Bir nesne dosyasının segment ve bölüm adları, otool(1) komutunun -l seçeneği ile incelenebilir. Yalnızca kendilerine veya kendilerinden yeniden konumlandırma (relocation) yapılmayan segmentlerdeki bölümler (yani SG_NORELOC bayrağı ile işaretlenmiş segmentler) değiştirilebilir, ancak tüm bölümler ayıklanabilir.
segedit(1) seçenekleri:
-extract seg_name sect_name data_file Segment ve bölüm adlarıyla belirtilen her bir bölümü ayıklar ve içeriği belirtilen data_file dosyasına yerleştirir. Çıktı dosyası `-' ise, bölüm içeriği standart çıktıya yazılır.
-replace seg_name sect_name data_file Segment ve bölüm adlarıyla belirtilen her bir bölümü değiştirir ve yeni bölüm içeriğini belirtilen data_file dosyasından alır. Ayrıca -output output_file seçeneği de belirtilmelidir. Bölümün nihai boyutu 4 baytın katına yuvarlanacak ve gerekirse sıfır baytları ile doldurulacaktır.
-output output_file Bölümler değiştirilirken oluşturulacak yeni dosyayı belirtir.
Ayrıca Bkz.
ld(1), otool(1), lipo(1)
Sınırlamalar
Yalnızca bitişik bir adres alanında düzenlenmiş ve segmentleri artan adres sırasına göre sıralanmış Mach-O biçimindeki dosyaların segmentleri bu program tarafından değiştirilebilir. Bu düzen, ld(1) komutunun varsayılan olarak ürettiği düzendir.
Yalnızca kendilerine veya kendilerinden yeniden konumlandırma (relocation) yapılmayan segmentlerdeki bölümler (yani SG_NORELOC bayrağı ile işaretlenmiş segmentler) değiştirilebilir.
segedit, universal (evrensel) dosyalardan bölümleri ayıklamaz veya değiştirmez. Gerekirse, segedit komutunu çalıştırmadan önce bir universal dosyadan istenen Mach-O dosyalarını ayıklamak için lipo(1) komutunu kullanın.