คำถามติดแท็ก c

C เป็นภาษาโปรแกรมคอมพิวเตอร์ที่ใช้งานทั่วไปสำหรับระบบปฏิบัติการเกมและงานอื่น ๆ ที่มีประสิทธิภาพสูงและแตกต่างจาก C ++ อย่างชัดเจน คำถามเกี่ยวกับการเขียนโปรแกรมในภาษา C ไม่อยู่ในหัวข้อและจะถูกปิดหรือย้ายข้อมูล ลองถามคำถามของคุณที่ Stack Overflow แทน

8
เครื่องหมายวงเล็บและตัวเลขหลังคำสั่ง Unix หรือฟังก์ชัน C หมายถึงอะไร
ฉันเห็นวงเล็บและตัวเลขหลังจากคำสั่งในฟังก์ชัน Unix หรือ Linux หรือ C ตัวอย่างเช่น: man (8), ftok (2), mount (8), เป็นต้น สิ่งเหล่านี้หมายความว่าอย่างไร ฉันเห็นพวกเขาเป็นมนุษย์เช่นกัน
224 linux  command-line  unix  c  manpages 

4
ฉันจะติดตั้งโปรแกรม Windows (เขียนเป็นภาษา C) ที่ดาวน์โหลดจาก GitHub ได้อย่างไร
ฉันดาวน์โหลดโปรแกรม Windows แบบง่าย ๆ ที่ตายแล้วจาก GitHub ( นี่ถ้าเกี่ยวข้อง) ฉันดาวน์โหลดมันเป็นไฟล์ ZIP แต่ฉันไม่สามารถหาวิธีติดตั้งได้ มันเขียนด้วยภาษา C ฉันคิดว่า ฉันต้องการคอมไพเลอร์หรือไม่? (Visual Studio?) มีบางอย่างที่ฉันขาดไปไหม
44 windows-7  c 

3
การเน้นไวยากรณ์ใน Microsoft Office Word [ซ้ำกัน]
ซ้ำได้: ฉันจะเน้นไวยากรณ์ของรหัส PHP ใน Word ได้อย่างไร ฉันต้องวางโค้ด (ANSI C) ใน Microsoft Office Word และฉันต้องการรูปแบบของการเน้นไวยากรณ์ (แทนที่จะเปลี่ยนแบบอักษรเป็นLucida Console) มี addon บางอย่างที่จะให้ฉันเน้นไวยากรณ์รหัสใน Microsoft Office Word?

2
วิธีการหยุดและตรวจจับการทิ้งระเบิด
#include <stdlib.h> #include <unistd.h> int main() { while(1) fork(); } นี่คือรหัสสำหรับการวางระเบิด ในวิทยาลัยของเราเราเชื่อมต่อผ่าน telnet เช่นโปรโตคอลการให้บริการลูกค้า ระบบ 100 ระบบเชื่อมต่อกับเซิร์ฟเวอร์ ทันใดนั้นเราเห็นว่าเซิร์ฟเวอร์ช้าและหลังจากนั้นไม่นานก็เกิดข้อผิดพลาด ฉันรู้ว่ามีคนเอาระเบิดใส่ส้อม เราจะตรวจจับได้อย่างไรว่าระบบจะทำการ fork fork อย่างไร? และเราจะหยุดมันได้อย่างไร วิธีหนึ่งคือการ จำกัด จำนวนกระบวนการสูงสุดที่ผู้ใช้รายเดียวอาจเป็นเจ้าของ มีวิธีใดบ้างที่จะหยุดและรู้ว่าระบบนั้นถูกนำไปใช้หรือไม่?

5
linux มีมาตรการป้องกันการระเบิดจากส้อมหรือไม่?
#include <unistd.h> int main(int argc, char* argv[]) { while(1) { fork(); } } ฉันเรียกใช้โปรแกรมนี้บน linux ของฉันไม่มีอะไรออกมาบน terminal, ระบบปฏิบัติการดูเหมือนจะตาย linux มีมาตรการป้องกันโปรแกรมดังกล่าวซึ่งสามารถใช้หน่วยความจำไม่เพียงพอหรือไม่?
12 c  linux  linux-kernel 

1
emacs - C / C ++ ข้ามไปที่จุดเริ่มต้นของบล็อกที่มี
ในขณะที่แก้ไขไฟล์ C หรือ C ++ ใน emacs ฉันอยากจะไปที่จุดเริ่มต้นของ มี บล็อกของรหัส ฉันคาดหวังว่าจะพบฟังก์ชั่น c-initial-of-block แต่อนิจจาไม่มีฟังก์ชั่นดังกล่าว ตัวอย่างเช่นฉันอาจแก้ไขรหัส C น่าเกลียดต่อไปนี้: void myFunction() { if (something) { //<--- I want to jump to this brace! // do lots of stuff if (stuff) { // stuff } // more stuff // ... // I want to …
10 emacs  c++  c 

2
หน้าคนสำหรับฟังก์ชัน 'sizeof` C อยู่ที่ไหน
ทำไมไม่มี man page สำหรับsizeofฟังก์ชั่น C? $ man 3 sizeof No manual entry for sizeof in section 3 $ man sizeof No manual entry for sizeof ฉันจะดูหน้าคนสำหรับฟังก์ชั่นอื่น ๆ เช่น C mallocถ้าผมทำงานman 3 mallocและคำสั่งที่คล้ายกัน sizeofแต่ไม่มีอะไร
10 linux  c  man 

3
เพราะเหตุใด '>' เปลี่ยนเส้นทางข้อความผิดพลาดจาก gcc
ฉันเก็บโปรแกรมต่อไปนี้ใน new.c int main() { a; return 0; } ส่งคืนข้อความแสดงข้อผิดพลาด ฉันต้องการส่งข้อความนี้ไปยังไฟล์ ดังนั้นฉันใช้คำสั่งดังต่อไปนี้ gcc new.c > temp.txt แต่ยังฉันได้รับผลลัพธ์ใน terminal ฉันใช้ Ubuntu 13.04 ฉันจะทำให้มันทำงานได้อย่างไร
9 c  shell  gcc 


2
วิธีการคัดลอก DVD ด้วยระบบไฟล์ / เซ็กเตอร์ UDF ที่แพตช์แล้ว?
ฉันพยายาม dd, dd_rescueและddrescueทั้งหมดล้มเหลว เนื่องจากAnyDVDทำให้แผ่นดิสก์สามารถคัดลอกได้ภายในเสี้ยววินาทีบนโฮสต์ Win7 จึงไม่ควรยากเกินไป มันบอกว่าระบบไฟล์ UDF นั้นได้รับการแพตช์ด้วยความอยากรู้อยากเห็นมันบอกว่าไม่มีเซกเตอร์เสีย ดีวีดีทั้งหมดจะถูกคัดลอกภายใน 10 นาที AnyDVD ทำอะไรได้บ้าง AnyDVD รายงานสิ่งเดียวกันเมื่อทำงานใน WinXP ของผู้เยี่ยมชมใน VirtualBox แต่พบเซกเตอร์เสียในขณะที่คัดลอก ไม่มีปัญหากับ Win7 ดั้งเดิม ฉันเดา AnyDVD ไม่มีการควบคุมไดรฟ์ดีวีดีเพียงพอและปัญหาเกิดขึ้นแล้วเมื่อโฮสต์ Linux พยายามอ่านแผ่นดิสก์ dd ถูกหลอกมันจะเสร็จสิ้น แต่เพียงสร้างไฟล์ขนาดเล็กและระบุว่ามันเสร็จสิ้นแล้ว dd_rescuse และ ddrescue บ่นเกี่ยวกับข้อผิดพลาดในการอ่านและช้ามากเหลือเกิน เครื่องมือเหล่านี้สามารถคัดลอกเพียงไม่กี่ MB ใน 10 นาที ทำไมสิ่งนี้เกิดขึ้นทำไมเครื่องมือเหล่านี้ถึงล้มเหลว ฉันจะคัดลอกดีวีดีของฉันเองไปยังฮาร์ดดิสก์เพื่อให้สามารถเล่นในภายหลังได้อย่างไร ฉันกำลังมองหาโซลูชันถาวรโดยเฉพาะอย่างยิ่งบนโฮสต์ Linux แต่อาจเกี่ยวข้องกับ VirtualBox และ WinXP และเครื่องมือ freeware …

3
ใน GDB ฉันจะข้ามไปยังเฟรมสแต็คการโทรสูงสุดโดยตรงได้อย่างไร
ฉันมีโปรแกรม C ที่แยกส่วนข้อผิดพลาดหลังจากที่ลงลึกเข้าไปในระเบียบซ้ำซ้ำ การเคลื่อนย้ายกระบวนการใน GDB นั้นไร้ประโยชน์เนื่องจาก call stack frame มีความลึกอย่างน้อย 1,000 เฟรมและการเรียกฟังก์ชันซ้ำเป็นชุดของการเรียกฟังก์ชัน recursive ทั่วไปสี่ชุด (ดังนั้นจุดพักดูเหมือนจะไร้ประโยชน์) การเรียกซ้ำไปยัง backtrace เพียงแค่อ่านชื่อฟังก์ชั่นทั้งสี่ชื่อซ้ำแล้วซ้ำอีก มันเกิดขึ้นกับฉันว่าการทำ 'up' 'up' 'up' ... จะทำให้ฉันสูงขึ้นดังนั้นฉันจะได้เห็นว่ารูปแบบนี้เริ่มต้นเกิดขึ้นครั้งแรก แต่ดูเหมือนว่ามันจะมีประสิทธิภาพมากกว่าที่จะเริ่มต้นจากการโทรสูงสุด stack frame และ step down แทนเนื่องจากลางสังหรณ์ของฉันคือการเรียกซ้ำแบบไม่สิ้นสุดเริ่มต้นในกระบวนการ หาก call stack มี N frames ทั้งหมดฉันรู้ว่าฉันทำได้ gdb>> up N เพื่อไปที่ด้านบนของสแต็ค (เฟรม Nth) แต่ปัญหาคือฉันไม่รู้ N มีคำสั่งสำหรับการค้นหาจำนวนเฟรมทั้งหมดในสแต็กการโทรหรือไม่ หรือมีคำสั่ง GDB ในตัวที่ลื่นไหลสำหรับการกระโดดไปที่เฟรมสูงสุดหรือไม่? …
9 debug  c  gdb 

2
ไปที่นิยามของฟังก์ชัน C ในไฟล์อื่นใน Notepad ++
ในขณะที่แก้ไขโครงการ C บน Notepad ++ 5.6.7 (Unicode) ด้วยปลั๊กอิน SourceCookifier ฉันสามารถกด Ctrl + Shift + Enter เพื่อไปที่คำจำกัดความของฟังก์ชันที่เคอร์เซอร์เปิดอยู่ แต่ถ้าอยู่ในไฟล์เดียวกันเท่านั้น ฉันจะไปยังคำจำกัดความของมันได้อย่างไรถ้ามันอยู่ในไฟล์อื่นเช่น extern, natively หรือใช้ SourceCookifier (ที่ต้องการ) หรือปลั๊กอินอื่น?
8 notepad++  plugins  c  code 

2
การติดตั้งไลบรารีและไฟล์ส่วนหัวภายใต้ Ubuntu Linux สำหรับการพัฒนา C / C ++
ฉันต้องยอมรับว่าฉันรู้สึกสูญเสียไปอย่างสมบูรณ์ในแต่ละครั้งที่ฉันต้องปฏิบัติตามการพึ่งพาของรหัส C หรือ C ++ บางอย่าง ปัจจุบันฉันอยู่ อูบุนตู 9.10 (Karmic Koala) แต่ฉันจำความรู้สึกเดียวกันของความเหงาจาก Windows ได้ ฉันคิดว่าฉันเข้าใจไลบรารี C, C ++, สแตติกและไดนามิก, ไฟล์ส่วนหัวและการเชื่อมโยงรวมถึงตัวจัดการแพ็คเก็ต "ความถนัด" แต่เมื่อพูดถึงภาคปฏิบัติ แม้ว่าฉันจะจัดการมันอย่างใดฉันก็ไม่รู้จริงๆว่าฉันไปถึงที่นั่นและเรียนรู้อะไรจากมันได้ ตัวอย่างเช่นวันนี้ฉันต้องการใช้รหัสที่ระบุว่า "มันใช้ glib2, curl และ openssl" . ในที่สุดฉันก็พบว่า curl และ openssl ติดตั้งแล้ว แต่ฉันจำเป็นต้องติดตั้ง libcurl3-dev ผ่านตัวจัดการแพ็คเก็ตของฉันซึ่งจะต้องใช้ (และติดตั้ง) libcurl4-openssl-dev ดังนั้นฉันจึงไม่ต้องกังวลเกี่ยวกับ OpenSSL แต่ฉันต้องเลือกชื่อแพ็กเก็ตเหล่านี้จาก 67 ตัวเลือกที่ทำให้เกิดเสียงคล้ายกัน และ glibในทางกลับกันก็จะต้องดาวน์โหลดและสร้างด้วยตนเองเนื่องจากไม่มีแพ็กเก็ตที่ตรงกันเลย ฉันใช้เวลาหลายชั่วโมงกว่าจะค้นพบสิ่งนี้และไม่ใช่ครั้งแรก ดังนั้นคำถามของฉันคือ: เมื่อฉันมีคำอธิบายที่คลุมเครือของการอ้างอิง: …

0
วิธีเพิ่มสิทธิ์“ อ่านและเรียกใช้” ใน Windows 7 สำหรับไฟล์บนไดรฟ์ Samba
จากโปรแกรม C ฉันต้องการเพิ่มสิทธิ์ "อ่านและดำเนินการ" ใน Windows 7 สำหรับไฟล์ในไดรฟ์ Samba โปรแกรม "icacls" ถูกนำมาใช้ในตัวอย่างด้านล่าง แต่การเรียกใช้ไลบรารี C อาจเป็นไปได้ถ้ามี สิทธิ์สามารถเปลี่ยนแปลงได้สำหรับผู้ใช้ Windows เช่นทุกคนด้วยโปรแกรม "icacls" ของ Windows (ใช้การเรียกของระบบ) แต่เมื่อฉันพยายามที่จะเปลี่ยนสิทธิ์สำหรับผู้ใช้ Samba ด้วยชื่อที่แสดงผ่าน Windows แล้ว "icacls" จะส่งกลับ: U:\temp>icacls hello.exe /grant smbuser:RX user: No mapping between account names and security IDs was done. Successfully processed 0 files; Failed processing …

2
โค้ด / ซอฟต์แวร์สามารถเข้าถึงตำแหน่งในหน่วยความจำที่ไม่ควรได้อย่างไร
ตามค่าเริ่มต้นเมื่อแอปพลิเคชันทำงานพวกเขาจะถูก จำกัด จำนวน RAM ที่พวกเขาสามารถเข้าถึงได้ใช่ไหม ในทางเทคนิค VLC ของฉันไม่สามารถเข้าถึงที่อยู่หน่วยความจำที่ Chrome ใช้ แต่เป็นไปได้อย่างไรที่ระบบปฏิบัติการ / คอมไพเลอร์อนุญาตการเข้าถึงที่อยู่โดยไม่ได้ตั้งใจและไม่อนุญาตให้ใช้รหัส ฉันรู้ว่า 'การหาประโยชน์' และ 'เพย์โหลด' ใช้ประโยชน์จากข้อเท็จจริงนี้และสร้างตัวแปรที่ใช้พื้นที่มากเกินไปและ 'ล้น' ในที่อยู่อื่น แต่สิ่งนี้เกิดขึ้นจริงได้อย่างไร บางโปรแกรมมีแนวโน้มที่จะเกิดปัญหานี้มากกว่าโปรแกรมอื่นหรือไม่? มันมีความสำคัญในภาษาใดที่พวกเขาได้รับรหัส? ตัวอย่างเช่นฉันรู้ว่า C อนุญาตให้เล่นกับหน่วยความจำในขณะที่ Java ไม่ได้ นอกจากนี้ข้อดีของสิ่งนี้คืออะไร? จะเกิดอะไรขึ้นถ้ามีคนเขียนโค้ดที่เป็นอันตรายเพื่อเข้าถึงบางแห่งในหน่วยความจำพวกเขาจะทำอย่างไร สิ่งเดียวที่ฉันนึกได้ก็คือรหัสผ่าน / คีย์ที่เก็บไว้ใน RAM ป.ล.ฉันคิดว่าจะนำเรื่องนี้ไปวางไว้ใน Stack Overflow แต่คำถามของฉันนั้นกว้างกว่าเฉพาะที่เกี่ยวข้องกับมุมมองการเขียนโปรแกรมโดยเฉพาะ หากฉันวางผิดที่ฉันขอโทษ
1 windows  linux  memory  kernel  c 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.