मुझे किसी कारण से -EINVAL
मिल रहा है, और यह मुझे स्पष्ट नहीं है कि क्यों।पढ़ने-लिखने mmap के लिए अवैध तर्क?
if ((fd = open(argv[1], O_RDWR)) < 0)
{
fprintf(stderr, "Failed to open %s: %s\n", argv[1], strerror(errno));
return 1;
}
struct stat statbuf;
if (fstat(fd, &statbuf))
{
fprintf(stderr, "stat filed: %s\n", strerror(errno));
return 1;
}
char* fbase = mmap(NULL, statbuf.st_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
if (fbase == MAP_FAILED)
{
fprintf(stderr, "mmap failed: %s\n", strerror(errno));
return 1;
}
संपादित करें: मैं जोड़ने चाहिए, त्रुटि mmap
में हो रहा है यहाँ मैं कहाँ mmap
लिए फ़ाइल को खोलने और प्रयास है।
आपका क्या मतलब है? यह कुछ जो मैं लिख रहा हूं उससे एक स्निपेट है। – Alex
सवाल यह है कि "कहां" आपके कोड की कौन सी रेखा EINVAL घटनाओं को स्निपेट करती है। – alk
क्षमा करें, मैं निर्दिष्ट करना भूल गया। त्रुटि mmap में है। – Alex