{"id":13544,"date":"2024-03-15T07:21:01","date_gmt":"2024-03-15T07:21:01","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/"},"modified":"2025-08-05T19:59:49","modified_gmt":"2025-08-05T19:59:49","slug":"how-to-get-the-file-pointer-position-in-c-programming-language","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/","title":{"rendered":"C ftell: Get File Pointer Position"},"content":{"rendered":"<p>In C language, you can use the ftell function to get the position of a file pointer. The prototype of the ftell function is as follows:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-type\">long<\/span> <span class=\"hljs-type\">int<\/span> <span class=\"hljs-title function_\">ftell<\/span><span class=\"hljs-params\">(FILE* stream)<\/span>;\r\n<\/code><\/pre>\n<p>stream is a pointer that points to a file that has already been opened.<\/p>\n<p>The ftell function is used to determine the current position of the file pointer in bytes. If successful, it will return a non-negative value; if an error occurs, it will return -1.<\/p>\n<p>Here is an example code:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;stdio.h&gt;<\/span><\/span>\r\n\r\n<span class=\"hljs-type\">int<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">()<\/span> {\r\n    FILE* fp = fopen(<span class=\"hljs-string\">\"example.txt\"<\/span>, <span class=\"hljs-string\">\"r\"<\/span>);\r\n    <span class=\"hljs-keyword\">if<\/span> (fp == <span class=\"hljs-literal\">NULL<\/span>) {\r\n        <span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">\"Failed to open the file.\\n\"<\/span>);\r\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">1<\/span>;\r\n    }\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u83b7\u53d6\u6587\u4ef6\u6307\u9488\u7684\u4f4d\u7f6e<\/span>\r\n    <span class=\"hljs-type\">long<\/span> <span class=\"hljs-type\">int<\/span> position = ftell(fp);\r\n    <span class=\"hljs-keyword\">if<\/span> (position == <span class=\"hljs-number\">-1<\/span>) {\r\n        <span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">\"Failed to get the position of the file pointer.\\n\"<\/span>);\r\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">1<\/span>;\r\n    }\r\n    <span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">\"The position of the file pointer is %ld.\\n\"<\/span>, position);\r\n\r\n    fclose(fp);\r\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\r\n}\r\n<\/code><\/pre>\n<p>In this example, a file named example.txt is first opened and assigned to the pointer fp. The ftell function is then called to obtain the position of the file pointer, and the return value is stored in the variable position. Finally, the position of the file pointer is printed.<\/p>\n<p>It is important to note that before calling the ftell function, make sure that the file has been successfully opened and the file pointer is valid. The behavior of the ftell function is undefined if the file pointer is invalid.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C language, you can use the ftell function to get the position of a file pointer. The prototype of the ftell function is as follows: long int ftell(FILE* stream); stream is a pointer that points to a file that has already been opened. The ftell function is used to determine the current position of [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[381,890,18062,18061,7106],"class_list":["post-13544","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-c-programming","tag-file-handling","tag-file-pointer","tag-ftell","tag-stdio-h"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C ftell: Get File Pointer Position - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to use ftell() to get file pointer position in C. Includes syntax, error handling, and code examples.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C ftell: Get File Pointer Position\" \/>\n<meta property=\"og:description\" content=\"Learn how to use ftell() to get file pointer position in C. Includes syntax, error handling, and code examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T07:21:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-05T19:59:49+00:00\" \/>\n<meta name=\"author\" content=\"Noah Thompson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Noah Thompson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/\"},\"author\":{\"name\":\"Noah Thompson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\"},\"headline\":\"C ftell: Get File Pointer Position\",\"datePublished\":\"2024-03-15T07:21:01+00:00\",\"dateModified\":\"2025-08-05T19:59:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/\"},\"wordCount\":173,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"C++ Programming\",\"file handling\",\"file pointer\",\"ftell\",\"stdio.h\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/\",\"name\":\"C ftell: Get File Pointer Position - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T07:21:01+00:00\",\"dateModified\":\"2025-08-05T19:59:49+00:00\",\"description\":\"Learn how to use ftell() to get file pointer position in C. Includes syntax, error handling, and code examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C ftell: Get File Pointer Position\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\",\"name\":\"Noah Thompson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"caption\":\"Noah Thompson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C ftell: Get File Pointer Position - Blog - Silicon Cloud","description":"Learn how to use ftell() to get file pointer position in C. Includes syntax, error handling, and code examples.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/","og_locale":"en_US","og_type":"article","og_title":"C ftell: Get File Pointer Position","og_description":"Learn how to use ftell() to get file pointer position in C. Includes syntax, error handling, and code examples.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T07:21:01+00:00","article_modified_time":"2025-08-05T19:59:49+00:00","author":"Noah Thompson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Noah Thompson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/"},"author":{"name":"Noah Thompson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a"},"headline":"C ftell: Get File Pointer Position","datePublished":"2024-03-15T07:21:01+00:00","dateModified":"2025-08-05T19:59:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/"},"wordCount":173,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["C++ Programming","file handling","file pointer","ftell","stdio.h"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/","name":"C ftell: Get File Pointer Position - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T07:21:01+00:00","dateModified":"2025-08-05T19:59:49+00:00","description":"Learn how to use ftell() to get file pointer position in C. Includes syntax, error handling, and code examples.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-get-the-file-pointer-position-in-c-programming-language\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"C ftell: Get File Pointer Position"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a","name":"Noah Thompson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","caption":"Noah Thompson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/13544","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=13544"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/13544\/revisions"}],"predecessor-version":[{"id":157536,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/13544\/revisions\/157536"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=13544"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=13544"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=13544"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}